로컬 파일 시스템에서 pip를 사용하여 패키지를 설치할 수 있습니까?
python setup.py sdist
적절한 tar.gz 파일을 만든 패키지를 실행 했습니다. 이 파일은 내 시스템의에 저장됩니다 /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
.
이제 가상 환경에서 pypi 또는 특정 로컬 위치에서 패키지를 설치하고 싶습니다 /srv/pkg
.
이게 가능해?
추신 :
나는 내가 지정할 수 있음을 알고있다 pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz
. 작동하지만 /srv/pkg
pip를 입력하면 검색 할 다른 장소로 위치를 사용하는 것에 대해 이야기하고 있습니다 pip install mypackage
.
답변
나는 당신이 찾고있는 것이 --find-links
옵션 이라고 확신합니다 .
index.html
모든 패키지에 대한 링크를 나열하는 로컬 패키지 색인에 대한 더미를 생성해야 할 수도 있습니다 . 이 도구는 다음을 도와줍니다.
답변
이건 어떤가요::
pip install --help
...
-e, --editable <path/url> Install a project in editable mode (i.e. setuptools
"develop mode") from a local project path or a VCS url.
예를 들어 pip install -e /srv/pkg
여기서 / srv / pkg는 ‘setup.py’를 찾을 수있는 최상위 디렉토리입니다.
답변
설치 pyfuzzy
중이지만 PyPI에 없습니다. 메시지를 반환합니다 : No matching distribution found for pyfuzzy
.
나는 대답을 시도했다
pip install --no-index --find-links=file:///Users/victor/Downloads/pyfuzzy-0.1.0 pyfuzzy
그러나 작동하지 않으며 다음 오류를 반환합니다.
인덱스 무시 : https://pypi.python.org/simple
pyfuzzy 수집 pyfuzzy 요구 사항을 충족하는 버전을 찾을 수 없습니다 (버전에서 🙂 pyfuzzy에 대해 일치하는 분포가 없습니다.
마침내 나는 거기에 간단한 좋은 방법을 찾았습니다 : https://pip.pypa.io/en/latest/reference/pip_install.html
Install a particular source archive file.
$ pip install ./downloads/SomePackage-1.0.4.tar.gz
$ pip install http://my.package.repo/SomePackage-1.0.4.zip
그래서 다음 명령이 나를 위해 일했습니다.
pip install ../pyfuzzy-0.1.0.tar.gz.
그것이 당신을 도울 수 있기를 바랍니다.
답변
이것이 내가 사용한 해결책입니다.
import pip
def install(package):
# Debugging
# pip.main(["install", "--pre", "--upgrade", "--no-index",
# "--find-links=.", package, "--log-file", "log.txt", "-vv"])
pip.main(["install", "--upgrade", "--no-index", "--find-links=.", package])
if __name__ == "__main__":
install("mypackagename")
raw_input("Press Enter to Exit...\n")
나는 이것을 pip 설치 예제 와 다른 질문에 대한 Rikard의 답변 에서 함께 정리했습니다 . “–pre”인수를 사용하면 비 프로덕션 버전을 설치할 수 있습니다. “–no-index”인수는 PyPI 인덱스를 검색하지 않습니다. “–find-links =.” 로컬 폴더에서 인수를 검색합니다 (상대적이거나 절대적 일 수 있음). 디버깅을 위해 “–log-file”, “log.txt”및 “-vv”인수를 사용했습니다. “-업그레이드”인수를 사용하면 이전 버전보다 최신 버전을 설치할 수 있습니다.
또한 제거하는 좋은 방법을 찾았습니다. 이것은 여러 다른 파이썬 환경이있을 때 유용합니다. 의도하지 않은 설치 제거를 방지하기위한 안전 조치와 함께 “install”대신 “uninstall”을 사용하는 것과 동일한 기본 형식입니다.
import pip
def uninstall(package):
response = raw_input("Uninstall '%s'? [y/n]:\n" % package)
if "y" in response.lower():
# Debugging
# pip.main(["uninstall", package, "-vv"])
pip.main(["uninstall", package])
pass
if __name__ == "__main__":
uninstall("mypackagename")
raw_input("Press Enter to Exit...\n")
로컬 폴더에는 install.py, uninstall.py, mypackagename-1.0.zip 파일이 있습니다.
답변
–find-links 옵션 은 작업을 수행하며 requirements.txt
파일 에서 작동 합니다!
패키지 아카이브를 일부 폴더에 넣고 요구 사항 파일을 변경하지 않고 최신 폴더를 가져올 수 있습니다. 예를 들면 requirements
다음과 같습니다.
.
└───requirements.txt
└───requirements
├───foo_bar-0.1.5-py2.py3-none-any.whl
├───foo_bar-0.1.6-py2.py3-none-any.whl
├───wiz_bang-0.7-py2.py3-none-any.whl
├───wiz_bang-0.8-py2.py3-none-any.whl
├───base.txt
├───local.txt
└───production.txt
이제 requirements/base.txt
넣어 :
--find-links=requirements
foo_bar
wiz_bang>=0.8
독점 패키지를 업데이트하는 깔끔한 방법
이런 식으로 local folder
AND pypi
에서 동일한 단일 호출로 패키지를 설치할 수 있습니다 .pip install -r requirements/production.txt
추신. 내보기 cookiecutter – djangopackage 기반 요구 사항 조직 폴더 요구 사항 및 사용을 분할하는 방법을 볼 포크.
답변
로부터 설치 – 패키지 페이지에서 간단히 실행할 수 있습니다 :
pip 설치 / srv / pkg / mypackage
여기서 / srv / pkg / mypackage 는 setup.py를 포함하는 디렉토리 입니다.
또한 1 , 아카이브 파일에서 설치할 수 있습니다.
pip install ./mypackage-1.0.4.tar.gz
1
질문에 언급되었지만 인기로 인해 포함되어 있습니다.
답변
virtualenv와 requirements.txt
파일 이 있다고 가정하면 이 파일 내부에서 패키지를 가져올 위치를 정의 할 수 있습니다.
# Published pypi packages
PyJWT==1.6.4
email_validator==1.0.3
# Remote GIT repo package, this will install as django-bootstrap-themes
git+https://github.com/marquicus/django-bootstrap-themes#egg=django-bootstrap-themes
# Local GIT repo package, this will install as django-knowledge
git+file:///soft/SANDBOX/python/django/forks/django-knowledge#egg=django-knowledge