복붙노트

[PYTHON] 인터넷없이 python 패키지를 설치하고 .tar.gz 및 .whl과 같은 소스 코드 사용

PYTHON

인터넷없이 python 패키지를 설치하고 .tar.gz 및 .whl과 같은 소스 코드 사용

우리는 인터넷없이 파이썬 패키지 몇을 설치하려고합니다.

For ex : python-keystoneclient

이를 위해 https://pypi.python.org/pypi/python-keystoneclient/1.7.1에서 다운로드 한 패키지를 서버에 보관했습니다.

그러나 tar.gz 및 .whl 패키지를 설치하는 동안 설치 프로그램은 종속 패키지가 먼저 설치되도록합니다. 서버에 인터넷이 연결되어 있지 않으므로 실패합니다.

예 : python-keystoneclient의 경우 다음 종속 패키지가 있습니다.

stevedore (>=1.5.0)
six (>=1.9.0)
requests (>=2.5.2)
PrettyTable (<0.8,>=0.7)
oslo.utils (>=2.0.0)
oslo.serialization (>=1.4.0)
oslo.i18n (>=1.5.0)
oslo.config (>=2.3.0)
netaddr (!=0.7.16,>=0.7.12)
debtcollector (>=0.3.0)
iso8601 (>=0.1.9)
Babel (>=1.3)
argparse
pbr (<2.0,>=1.6)

위의 목록에서 하나씩 패키지를 설치하려고하면 중첩 된 종속성을 다시 찾습니다.

python-keystoneclient와 같은 파이썬 모듈을 설치하기 위해 모든 종속 패키지를 나열 할 수있는 방법이 있습니까?

해결법

  1. ==============================

    1.이것이 내가이 사건을 다루는 방법이다.

    이것이 내가이 사건을 다루는 방법이다.

    내가 인터넷에 액세스 할 수있는 컴퓨터에서 :

    mkdir keystone-deps
    pip download python-keystoneclient -d "/home/aviuser/keystone-deps"
    tar cvfz keystone-deps.tgz keystone-deps
    

    그런 다음 tar 파일을 인터넷에 액세스 할 수없는 대상 시스템으로 이동하고 다음을 수행하십시오.

    tar xvfz keystone-deps.tgz
    cd keystone-deps
    pip install python_keystoneclient-2.3.1-py2.py3-none-any.whl -f ./ --no-index
    
  2. ==============================

    2.우리는 생산 시스템이 인터넷에 액세스 할 수없는 비슷한 상황에 처해 있습니다. 그러므로 모든 것이 오프라인 및 오프 호스트로 관리되어야합니다.

    우리는 생산 시스템이 인터넷에 액세스 할 수없는 비슷한 상황에 처해 있습니다. 그러므로 모든 것이 오프라인 및 오프 호스트로 관리되어야합니다.

    다음은 다양한 성공을 거둔 것입니다.

    두 번째 접근법의 문제점은 Python 패키지의 전체 저장소에 대한 최대 호환성과 액세스를 얻었지만 대상 머신에 모든 / 모든 종속성이 설치되어 있는지 확인해야합니다 (예 : 데이터베이스 드라이버의 헤더 및 도구 체인 작성). 또한 이러한 솔루션은 비피 피 저장소 (예 : github에서 호스팅되는 패키지)를 제공하지 않습니다.

    우리는 두 번째 옵션으로 매우 멀리 떨어져있어, 나는 그것을 확실히 추천 할 것이다.

    결국 호환성 문제와 라이브러리를 처리해야하는 것에 지쳐서 서버의 전체 서커스를 상업적으로 지원되는 고정 컨테이너로 마이그레이션했습니다.

    즉, 사전 구성된 모든 것을 출하한다는 의미입니다. 실제로 생산 시스템에 설치할 필요가 없으며 우리에게 가장 골치 아픈 솔루션이었습니다.

    우리는 pypi 리포지토리를 로컬 도커 이미지 서버로 대체했습니다.

  3. ==============================

    3.pipdeptree는 virtualenv에 설치된 python 패키지를 종속성 트리 형식으로 표시하기위한 명령 줄 유틸리티입니다. 그냥 사용하십시오 : https://github.com/naiquevin/pipdeptree

    pipdeptree는 virtualenv에 설치된 python 패키지를 종속성 트리 형식으로 표시하기위한 명령 줄 유틸리티입니다. 그냥 사용하십시오 : https://github.com/naiquevin/pipdeptree

  4. from https://stackoverflow.com/questions/36725843/installing-python-packages-without-internet-and-using-source-code-as-tar-gz-and by cc-by-sa and MIT license