python setup.py install
PyPI 패키지를 실행할 때 누구 든지이 경고가 발생합니까 ?
install_requires
패키지에 필요한 것을 정의합니다. 많은 PyPI 패키지에이 옵션이 있습니다. 어떻게 "알 수없는 배포 옵션"이 될 수 있습니까?
python setup.py install
PyPI 패키지를 실행할 때 누구 든지이 경고가 발생합니까 ?
install_requires
패키지에 필요한 것을 정의합니다. 많은 PyPI 패키지에이 옵션이 있습니다. 어떻게 "알 수없는 배포 옵션"이 될 수 있습니까?
답변:
python setup.py
install_requires를 지원하지 않는 distutils를 사용합니다. setuptools는 배포 (후속 자) 및 pip (둘 중 하나 사용)도 수행합니다. 하지만 실제로 사용해야합니다. 즉, easy_install
명령 또는 pip install
.
또 다른 방법은 setup.py의 setuptools에서 설정을 가져 오는 것입니다. 그러나 이것은 표준이 아니며 패키지를 사용하려는 모든 사람이 setuptools를 설치해야합니다.
pip
을 어떻게 실행 setup.py
합니까?
python setup.py sdist
와 함께 설치 pip install resulting_package.tar.gz
. 당신은 또한 사용할 수있는 pip install -e
소스에서 직접 설치,하지만 난 항상 패키지 나 .. 직접 저장소에서 설치하는 것이 바람직
pip install pendulum==1.4.4
. 실행 결과로 오류가 발생했습니다 . 실행 pip install setuptools --upgrade
하면 오류가 해결되었습니다.
이것은 내 Google 검색의 첫 번째 결과 였지만 대답이 없었습니다. setuptools를 업그레이드하면 문제가 해결되었음을 알았습니다 (그리고 좋은 측정을 위해 pip).
pip install --upgrade pip
pip install --upgrade setuptools
이것이 다음 사람이이 링크를 찾는 데 도움이되기를 바랍니다.
pip3 install neovim-remote
.)
주의 ! 주의 ! 앞의 불완전한 대답. 파이썬 세계의 패키징 상태에 대한 "최신 메모"를 얻으려면 이 매우 상세한 에세이를 읽으십시오 .
ansible을 빌드 / 설치하려고 할 때이 문제가 발생했습니다. 문제는 distutils가 실제로 install_requires를 지원하지 않는 것 같습니다 . Setuptools 는 즉시 distutils를 원숭이 패치 해야 하지만 그렇지 않은 이유는 아마도 마지막 setuptools 릴리스가 2009 년의 0.6c11 인 반면 distutils는 핵심 Python 프로젝트이기 때문입니다.
따라서 setuptools-0.6c11-py2.7.egg를 수동으로 설치 한 후에도 setup.py를 실행하면 distutils dist.py 만 선택하고 site-packages / setuptools /의 파일은 선택하지 않습니다.
또한 setuptools 문서는 distutils가 아닌 ez_setup 사용에 대한 힌트를 제공 합니다.
그러나 setuptools 자체는 현재 배포판에서 제공되며 setup ()의 풍미는 install_requires를 지원합니다.
setuptools
과 distribute
프로젝트가 다시 합병되는 과정에 있지만 합병은 아직 완료되지 않았습니다 (곧이 에세이를 업데이트하겠습니다. 그 변화). " 2019 년 현재까지의 상황을 아는 사람이 있습니까? Python 2.7의 수명 종료 날짜가 빠르게 다가옴에 따라 많은 Python 패키지가 업데이트 및 재 패키징 과정에있을 것입니다.
저는 Python 2.7.11이 설치된 Mac을 사용하고 있습니다. 저는 매우 간단하고 간단한 프로젝트를 만드는 데 노력해 왔습니다. 여기서 유일한 요구 사항 은를 실행할 수 있고 이상적으로는 distutils에서 setup 명령 python setup.py install
을 setup.py
사용할 수 있다는 것 입니다. kwargs 외에 setup()
내가 여기서 언급 한 것 외에 다른 수입품이나 코드는 말 그대로 없습니다 .
내 setup.py
파일에 대한 가져 오기가 다음과 같을 때 오류가 발생합니다 .
from distutils.core import setup
이것을 사용하면 다음과 같은 경고가 표시됩니다.
/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py:267 : UserWarning : 알 수없는 배포 옵션 : 'entry_points'warnings.warn ( 메시지)
가져 오기 ( 다른 것은 없음 )를 다음으로 변경하면 :
from distutils.core import setup
import setuptools # noqa
경고가 사라집니다.
내가 사용하지 않는 오전 참고 setuptools
그냥 가져 가 더 이상 경고를 방출하도록 동작을 변경하지 않습니다. 나에게 이것은 내가 사용하는 일부 프로젝트가 그러한 경고를 제공하고 다른 일부는 그렇지 않은 진정한 당황스러운 차이의 원인입니다.
분명히 어떤 형태의 원숭이 패치가 진행되고 있으며 가져 오기가 수행되었는지 여부에 따라 영향을받습니다. 이것은 아마도이 문제를 연구하는 모든 사람들에게 해당되는 상황은 아니지만 제가 일하고있는 좁은 환경에서 제가 찾던 답입니다.
이것은 distutils가 setuptools를 몽키 패치해야하며 Ansible을 설치할 때 문제가 있다고 말하는 다른 (커뮤니티) 의견과 일치합니다. Ansible은 과거에 setuptools없이 설치를 허용하려고 시도한 것 같습니다.
https://github.com/ansible/ansible/blob/devel/setup.py
많은 것들이 공중에 있습니다 ...하지만 간단한 프로젝트에 대한 간단한 답을 찾고 있다면 setuptools 만 가져와야합니다.
import setuptools
파이썬 3.5를 사용하는 우분투 16.04에서 기적적으로 문제가 해결되었습니다.
이것은 distutils의 경고이며 setuptools가 설치되어 있지 않다는 신호입니다. http://pypi.python.org/pypi/setuptools 에서 설치 하면 경고가 제거됩니다.
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
누락 된 헤더를 설치합니다. 내 문제가 해결되었습니다.
결론적으로 :
distutils
지원하지 않습니다 install_requires
또는 entry_points
, setuptools
않습니다.
변화 from distutils.core import setup
의 setup.py 에 from setuptools import setup
귀하 또는 리팩토링 setup.py는 만 사용 distutils
하고 있습니다.
나는 entry_points
단지 setuptools
기능 이라는 것을 깨닫지 못했기 때문에 여기에 왔습니다 .
나처럼 전환 setuptools
하고 distutils
싶다면 :
install_requires
에서 setup.py 그냥 사용 requirements.txt을 함께pip
entry_points
하고 shebangs 및 진입 점이있는 전체 스크립트 에 의존하는 모듈을 리팩터링합니다 .scripts
entry_points
내가 알 수있는 한, 이것은 표준 라이브러리의 기본 클래스를 호출하기 전에 setuptools 특정 옵션을 제거하지 않는 setuptools의 버그입니다. https://bitbucket.org/pypa/setuptools/issue/29 / avoid-userwarnings-emitted-calling
당신은 무조건이있는 경우 import setuptools
귀하에 setup.py
(같은 당신이해야 setuptools에 특정 옵션을 사용하는 경우), 다음 스크립트와 함께 실패하지 않는 사실은 ImportError
setuptools에 제대로 설치되어 있음을 나타냅니다.
다음과 같이 경고를 음소거 할 수 있습니다.
python -W ignore::UserWarning:distutils.dist setup.py <any-other-args>
setuptools가 설치되지 않은 경우 완전히 실패하는 무조건 가져 오기를 사용하는 경우 에만이 작업을 수행하십시오. :)
(합병 후 setuptools 리포지토리의 체크 아웃에서 이와 동일한 동작을보고 있으므로 시스템 구성 문제가 아닌 setuptools 버그라고 확신합니다. 사전 병합 배포에 동일한 문제가있을 것으로 예상합니다)