`python setup.py install` 의존성 해결을 위해`easy_install` 대신`pip`를 사용할 수 있습니까?


137

python setup.py install를 requires=[]사용하여 나열된 패키지를 자동으로 설치합니다 easy_install. pip대신 사용하려면 어떻게해야 합니까?

답변:


133

그래 넌 할수있어. 웹 또는 컴퓨터의 tarball 또는 폴더에서 패키지를 설치할 수 있습니다. 예를 들면 다음과 같습니다.

웹의 tarball에서 설치

pip install https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz

로컬 타르볼에서 설치

wget https://pypi.python.org/packages/source/r/requests/requests-2.3.0.tar.gz
pip install requests-2.3.0.tar.gz

로컬 폴더에서 설치

tar -zxvf requests-2.3.0.tar.gz
cd requests-2.3.0
pip install .

requests-2.3.0폴더 를 삭제할 수 있습니다 .

로컬 폴더에서 설치 (편집 가능 모드)

pip install -e .

패키지를 편집 가능한 모드로 설치 합니다 . 코드를 변경하면 시스템 전체에 즉시 적용됩니다. 패키지 개발자이고 변경 사항을 테스트하려는 경우에 유용합니다. 또한 설치를 중단하지 않으면 폴더를 삭제할 수 없습니다.


10
"python setup.py install"을 사용하여 패키지를 설치하는 데 익숙하다면 "python setup.py install"을 사용하여 pip로 종속성을 해결하는 방법을 묻는 것이 당연하지만 잘못된 질문입니다. 해결책은 pip로 패키지를 설치하고 "setup.py install"사용을 중지하는 것입니다.
— joeforker 2016 년

8
@joeforker 문제는 다음과 같은 작업을 수행하면 easy_install을 사용해야한다는 것입니다.python setup.py test
— TomDotTom

1
@TomDotTom pip를 강제로 실행하는 방법에 대한 아이디어가 있으 setup.py test십니까?
— Jan Sila

@ joeforker, pip는 setup.py무대 뒤에서 사용 합니다. 사람들이 pip로 패키지를 설치할 수있게하려면 setup.py파일 을 만들어야 합니다.
— cowlinator

이것에 대한 증거가 필요하면을 시도하십시오 pip install -e git+https://github.com/octocat/Hello-World.git#egg=Hello-World. 오류는No such file or directory: 'c:\python\src\Hello-World\setup.py
— cowlinator

110

pip install아마 python setup.py sdist먼저 파일을 만들 수 있습니다 . 당신은 또한 pip install -e .같은 수 있습니다 python setup.py develop.


14
이 작업을 시도하는 모든 사람에게 도움이 됩니다. 파일 자체가 pip install -e아닌 디렉토리를 인수로 사용 setup.py합니다. 처음 엔에서 기간 통지를하지 않은 pip install -e .나에게 약간의 혼란 : 일으킨
— 마르쿠스 아말 테아 매그너 슨

3
고맙습니다, pip install -e .설치할 수는 있지만 pip를 사용하면 편집 가능한 모드에서 어떻게 제거 할 수 있습니까?
— JuanPablo

2
편집 가능한 설치는 정기적 인 'pip uninstall <package name>'
— joeforker

4

실제로 사용하도록 설정 python setup.py install하면 다음과 같이 시도 할 수 있습니다.

from setuptools import setup, find_packages
from setuptools.command.install import install as InstallCommand


class Install(InstallCommand):
    """ Customized setuptools install command which uses pip. """

    def run(self, *args, **kwargs):
        import pip
        pip.main(['install', '.'])
        InstallCommand.run(self, *args, **kwargs)


setup(
    name='your_project',
    version='0.0.1a',
    cmdclass={
        'install': Install,
    },
    packages=find_packages(),
    install_requires=['simplejson']
)

1
고맙지 만이 방법을 사용하여 재귀 콜백에 직면하고 있습니다. 'python setup.py install'을 사용하면 Install.run을 호출하여 pip install을 호출합니다.이 함수는 Install을 호출합니다. 다시 실행 ...
— 루멘
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.