2016-11-04 9 views
1

PyPI에서 발표 된 대부분의 프로젝트는 프로젝트 페이지에 "Py 버전"메타 데이터가 있지만 값은 다양합니다. PyPI 프로젝트 페이지의 "Py 버전"은 무엇을 의미합니까? 그리고 그것은 중요합니까?

패키지가 보편적 인 패키지 나 아닌 순수 파이썬 패키지가 아닌 경우

는, 그 값은이 nose pagesimplejson page로, 자신의 목표 플랫폼을 표시하기 위해, 당연히 다르다.

그러나 파이썬 패키지에는 여전히 약간 다른 내용이 포함되어 있습니다. 예를 들어 :

제 질문은 제작자가 릴리스 패키지를 작성하는 데 사용하는 다른 툴 체인 때문입니까? python2 setup.py sdist bdist_wheel --universal upload을 실행하려고하면 "2.7"Py 버전 값이 부여됩니다. 다음 번에는 python3 ...을 시도한 다음 twine ...을 시도해 보겠습니다.

더 중요한 것은 이러한 모든 문제입니까? 필자가 언급 한 커맨드 라인은 여전히 ​​Python 2와 Python 3 환경에서 다른 사람들이 소비하기에 적합한 보편적 인 패키지를 구축하고 있습니다.

답변

1

외부에서 당신은 2.7 또는 3.5 또는 다른 파이썬 버전은, 그 열이 빌드하는 데 사용되는 현재 파이썬 버전을 기반으로, by the bdist_wheel command을 설정했다 볼 수 있지만, 이는 잘못된 값입니다. 휠 프로젝트 문제 추적기에있는 bug 102입니다.

이것은 PyPI 프로젝트에서 reported as a bug입니다. 모든 프로젝트에 대해 실제로는 py2.py3이라고해야합니다. 다행히 바퀴를 설치하는 데 사용되는 도구에 상관없이 열의 의미는 다르지만 여전히 보편적 인 바퀴가있어 Python 2 또는 Python 3에 설치하는 데 사용됩니다.

이것은 PyPI의 잘못이 아닙니다. 그러나이 도구는 업로드 도구을 사용하여 으로 설정됩니다. file_upload() XML-RPC handler은 업 로더에서 값을 변경하지 않고 나중에 표시 할 수 있도록 데이터베이스에 삽입합니다. setuptools upload을 사용할 때 그 값은 궁극적으로 배포 파일을 작성한 코드에서 유래하므로이 경우 bdist_wheel입니다.

자신의 프로젝트에 대한 정보가 부족하여 올바른 정보가 나열되어 있다면 twine uploader을 대신 사용하는 것이 좋습니다. 이 패키지 extracts the pyversion field from the wheel filename. 이 Py 버전 열에 설정된 프로젝트는 해당 도구를 사용하여 업로드를 수행합니다. Twine은 다른 많은 장점이 있습니다. 특히 에 안전하게 사용할 수 있습니다. HTTPS를 통해 파일을 업로드하십시오. any 값으로

, 즉는 수동으로 I에 대한 인식하지 해요 PyPI 인터페이스에서 파일, 혹은 다른 도구 나 twine 또는 setuptools bdist_wheel의 이전 버전을 업로드하여 설정되어.