모드마다 답하는 질문이 다릅니다
정규화는 표기를 검사하고, 정렬은 버전 우선순위를 비교합니다. 조건 검사는 원래 순서를 유지합니다. 정렬에서 동등한 버전의 순서는 바뀌지 않으며 잘못된 행은 마지막에 모아 원래 행 번호와 함께 표시합니다.
개발자 도구
한 줄에 버전 하나를 입력하고 정규화, 정렬 또는 쉼표로 연결한 조건 검사를 선택하세요.
입력하거나 예시를 불러오세요.
입력은 이 브라우저에서 처리되며 서버로 전송되지 않습니다.
쉼표는 AND입니다. 빈 조건에는 경계가 없습니다. ~= == != <= >= < > === 지원. .*는 == 또는 !=의 릴리스 접두사에만 사용합니다.
비어 있지 않은 행 1,000개. UTF-16 단위로 행 256, 조건 2,048, 목록 전체 100,000까지. 빈 행은 건너뛰고 입력은 보존합니다.
현재 후보 검사 중…
PEP 440 버전 비교는 새 릴리스가 의존성 후보에서 빠지는 이유를 확인할 때 유용합니다. 버전 표기가 유효한지, 어떤 버전이 더 큰지, 조건에 맞는지는 서로 다른 질문입니다. 보고서는 이 결과를 나누어 보여 줍니다.
Python에서는 1.0과 1.0.0이 같은 순위를 가질 수 있지만 정규화 결과의 자릿수는 유지됩니다. 문자열 정렬만으로는 놓치기 쉬운 epoch, dev, post와 로컬 태그도 각각 확인할 수 있습니다.
PEP 440 버전 비교는 v01.1을 1.1로 바꾸어 표시하면서 원래 입력을 남깁니다. 행을 펼치면 epoch, 릴리스 번호, pre, post, dev, local을 확인할 수 있어 어떤 부분이 달라졌는지 추적하기 쉽습니다.
자동 정책은 전체 목록에서 모든 조건에 맞는 후보를 먼저 찾습니다. 정식판이나 후속 릴리스가 있으면 이를 우선하며, 그런 후보가 없을 때 조건을 만족하는 출시 전 버전을 허용합니다. 목록에 한 줄을 더한 것만으로 결과가 달라질 수 있습니다.
정규화는 표기를 검사하고, 정렬은 버전 우선순위를 비교합니다. 조건 검사는 원래 순서를 유지합니다. 정렬에서 동등한 버전의 순서는 바뀌지 않으며 잘못된 행은 마지막에 모아 원래 행 번호와 함께 표시합니다.
조건을 만족하는 정식판을 지우면 출시 전 후보가 다시 허용되는지 확인할 수 있습니다. 포함을 선택해도 숫자 경계는 그대로입니다. 1.0rc1은 1.0보다 작으므로 >=1.0을 만족하지 않습니다.
자동 검사는 입력이 멈춘 뒤 350ms 후 실행합니다. 끄면 실행 버튼이나 Ctrl/Cmd+Enter를 쓸 수 있습니다. 수정 직후에는 이전 결과 내보내기가 비활성화됩니다. 예시와 비우기는 미리 보기 후 적용하며 한 번 되돌릴 수 있습니다.
v 접두사, 숫자의 앞자리 0, alpha나 preview 같은 별칭, 로컬 구분자를 표준 형태로 정리합니다. 릴리스 숫자 구간의 개수는 유지하므로 1.0.0은 그대로 표시됩니다. 비교할 때의 0 보충과는 다른 동작입니다.
epoch를 먼저 비교한 뒤 릴리스 숫자와 개발판, alpha, beta, rc, 정식판, post 순서를 판정합니다. 로컬 구간의 숫자는 정수로 비교하며 JavaScript의 안전 정수 범위를 넘는 값도 반올림하지 않습니다.
~=, ==, !=, <=, >=, <, >, ===를 지원합니다. 쉼표는 AND이며 ==1.4.* 같은 릴리스 접두사 조건도 사용할 수 있습니다. 조건 불일치와 출시 전 정책에 따른 제외를 구분합니다.
잘못된 버전은 해당 행만 오류로 남기고 다른 행의 계산은 계속합니다. 잘못된 조건은 전체 실행을 중단합니다. 화면에서는 50개씩 더 표시하지만 JSON에는 처리한 모든 행과 오류 코드가 포함됩니다.
하한과 릴리스 접두사 조건을 함께 적용합니다. ~=1.4는 1.4부터 1.* 범위이고 ~=1.4.0은 1.4.*에 한정됩니다. ~=1처럼 숫자 구간이 하나뿐인 조건은 잘못된 형식입니다. 출시 전 버전 허용 여부는 별도로 판단합니다.
자동 필터는 맞는 정식 후보가 없을 때 출시 전 버전으로 대체할 수 있습니다. 조건에 맞는 정식판이나 post 버전을 추가하면 목록 전체의 판단이 바뀝니다. 포함으로 가능한 후보를 모두 보거나 제외로 출시 전 후보를 항상 거부할 수 있습니다.
공개 부분이 같으면 로컬 태그가 붙은 버전이 뒤에 옵니다. 예를 들어 1.0 < 1.0+abc입니다. 로컬 숫자 구간은 문자 구간보다 뒤에 오며 동등한 값은 입력 순서를 유지합니다. SemVer 빌드 메타데이터와는 다른 규칙입니다.
==1.0+linux.1 또는 !=1.0+linux.1은 가능합니다. >=와 ~=에는 로컬 태그를 넣을 수 없습니다. ==1.0은 특정 로컬 빌드를 요구하지 않으므로 1.0+linux.1도 일치할 수 있습니다.
PEP 규칙을 따르는 비교에는 packaging.version.Version을 사용할 수 있습니다. 이 페이지는 packaging 26.0과 결과를 대조합니다. 일반 문자열 비교는 1.10과 1.9를 잘못 정렬할 수 있고 다른 규격은 epoch나 post를 해석하지 못할 수 있습니다.
==1.0.*는 유효한 릴리스 접두사 조건이지만 ==1.0rc1.*와 ==1.0.post1.*는 잘못된 형식입니다. 접미사를 제한하려면 정확한 동등 조건이나 상하한을 쓰세요. 접두사 일치도 출시 전 정책의 적용을 받습니다.
예상과 다른 버전 결과인가요?
PEP 440 버전 비교에 조사 중인 목록과 조건을 넣고 오류 행과 자동 정책 설명을 살펴보세요. 최신 보고서는 원래 표기와 정규화 값, 사용한 조건을 함께 남겨 판단을 재현할 수 있게 합니다.