“pip install --editable ./”vs“python setup.py develop”


178

사이에 중요한 차이가 있습니까

pip install -e /path/to/mypackage

setuptools 변형?

python /path/to/mypackage/setup.py develop

1
다음은 개발 모드를 설명하는 업데이트 된 링크 인 것 같습니다 : setuptools.readthedocs.io/en/latest/…
PaulR

제거 (개발 / 편집 가능 모드의 패키지)에 관심이 있다면 다음 질문을 시도해보십시오. stackoverflow.com/questions/17346619/…
Charlie Parker

답변:


131

setup.py직접 전화하는 것을 피 하십시오. 패키지를 설치했다고 pip에 제대로 알리지 않습니다.

pip install -e:

로컬 프로젝트의 경우 "SomeProject.egg-info"디렉토리가 프로젝트 경로를 기준으로 작성됩니다. 이것은을 사용하는 것보다 한 가지 장점 setup.py develop으로, 현재 작업 디렉토리에 직접 "egg-info"를 만듭니다.

더 : 문서

setuptools ' docs 도 읽으십시오 .


변경 사항을 적용하려면 파일을 변경 한 후 'python setup.py sdist'를 다시 실행해야합니까?
변수

그러나 'set_trace'를 사용하여 setup.py 파일 자체를 디버깅해야하는 경우 'python setup.py develop'이 가능합니다
mirek

두 번째 URL이 깨졌습니다.
bad_coder

둘 다 나를 위해 일합니다.
sobolevn

76

한 가지 더 다른 점 pip install -e은 휠을 사용하고 휠을 python setup.py develop
사용하지 않는 것입니다.

을 사용 install하면 다음을 사용하여 동일한 동작을 달성 할 수 있습니다
pip install -e /path/to/package --no-use-wheel

바퀴에 대한 자세한 정보 : Python Wheels


18
에 따라, 그 주 pip.pypa.io/en/stable/reference/pip_install , --no-use-wheel찬성 추천하지 않습니다--no-binary :all:
Nzbuu

sdist를 사용하여 생성 된 패키지에 대해 pip install -e를 수행 할 수 있습니까?
변수

36

선호 수있는 또 다른 차이 pip install -e에서 프로젝트 종속성이있는 경우이다 install_requires에서 setup.py, 다음 pip install -e .동안, 핍과 의존성을 설치 python setup.py develop와 함께 설치할 수 있습니다 easy_install'달걀 정보를'위에서 언급 한 바와 같이 : 문제가 다시 발생할 수 있습니다. 계란 식별자가 첨부 된 맞춤 git URL과 함께 install-requires사용 하면 dependency_links특히 성 가실 수 있습니다.


1
이것은 내 개인 패키지가 설치되지 않은 이유를 완전히 설명합니다. 그것은 pypi가 아닌 내 devpi 서버에 있습니다. 감사.
ckot

패키지를 편집 할 수 있다고하면 패키지 파일을 변경 한 후 사용자가 'python setup.py sdist'를 다시 실행해야합니까? 아니면 위의 명령을 실행할 필요가 없습니까?
변수

@variable을 사용하여 로컬 패키지를 설치 pip install -e .하면 기본적으로 관련 Python 사이트 패키지 디렉토리에 작업 링크를 가리키는 symlink가 작성됩니다. 작업 복사본에 코드가 변경되면 "설치된"버전에 즉시 반영되므로 설치 명령을 다시 실행할 필요가 없습니다. 이것은 주로 설치 가능한 패키지를 나타내는 저장소에서 개발하는 데 유용하지만 절대적으로 가져
오기만

0

또 다른 차이점 : python setup.py develop시험판으로 간주되는 버전을 실행하면 (아마도 릴리스를 체크 아웃하지 않은 상태에서 git clone에서 실행 중이기 때문에) 종속성시험판을 설치할 수 있습니다 . 반면에 이러한 시험판을 원한다면 명시 적으로 pip install --editable전달해야 --pre합니다.

( 실수로 시험판을 사용한 CI 로그를 참조하여 여기에서 고정 빌드 와 비교 하십시오 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.