[python] pip를 사용하여 Python 패키지를 다른 디렉토리에 설치 하시겠습니까?

명백한 대답은 virtualenv와 virtualenvwrapper를 사용하는 것임을 알고 있지만 여러 가지 이유로 나는 그것을하고 싶지 않습니다.

명령을 어떻게 수정합니까?

pip install package_name

pip기본 이외의 패키지 를 설치하려면 site-packages?



답변

사용하다:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

--ignore-installed이 새로운 접두사를 사용하여 모든 종속성을 강제로 다시 설치하는 데 사용할 수도 있습니다 . --install-option여러 번 사용 하여 사용할 수 있는 옵션을 추가 할 수 있습니다 python setup.py install( --prefix아마도 원하는 것이지만 사용할 수있는 옵션이 많이 있습니다).


답변

–target 스위치는 당신이 찾고있는 것입니다 :

pip install --target=d:\somewhere\other\than\the\default package_name

그러나 당신은 여전히 추가 할 필요 d:\somewhere\other\than\the\defaultPYTHONPATH실제로 위치에서 사용할 수 있습니다.

-t, –target <dir> <dir>에
패키지를 설치하십시오. 기본적으로 이것은 <dir>의 기존 파일 / 폴더를 대체하지 않습니다.
<up>의 기존 패키지를 새 버전으로 바꾸려면 –upgrade를 사용하십시오.


대상 스위치를 사용할 수없는 경우 pip를 업그레이드하십시오.

Linux 또는 OS X에서 :

pip install -U pip

Windows에서 ( 문제가 해결됩니다 ) :

python -m pip install -U pip


답변

--target옵션 또는 옵션 대신 https://github.com/pypa/pip/issues/446--install-options 에서이 문제에 관한 버그에 대한 토론에서 다음이 잘 작동한다는 것을 알았습니다 .

PYTHONUSERBASE=/path/to/install/to pip install --user

(또는이 설정 PYTHONUSERBASE을 사용하여 명령을 실행하기 전에 사용자 환경에서 디렉토리 export PYTHONUSERBASE=/path/to/install/to)

이것은 매우 유용하게 사용 --user옵션을하지만, 할을 알려줍니다 bin, lib, share당신이 아닌 사용자 정의 접두사에서 기대와 다른 디렉토리를 $HOME/.local.

그럼 당신은 당신이를 추가 할 수 있습니다 PATH, PYTHONPATH당신을 일반 설치 디렉토리로 및 기타 변수.

시스템 제공 버전을 무시 하기 위해이 패키지가 종속 된 패키지가 디렉토리 에 최신 버전을 설치해야하는 경우 --upgrade--ignore-installed옵션 을 지정해야 할 수도 있습니다 PYTHONUSERBASE.

전체 예 :

PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy

..to를 설치 scipy하고 numpy당신이 다음에 포함 할 수있는 디렉토리에 최신 버전의 패키지 PYTHONPATH같은 (사용 bash는이 예에 CentOS 6에 파이썬 2.6을) :

export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH

virtualenv를 사용하는 것이 여전히 더 좋고 깔끔한 솔루션입니다!


답변

파이썬 패키지 설치에는 종종 순수한 파이썬 파일 만 포함됩니다. 패키지에 데이터, 스크립트 및 / 또는 실행 파일이 포함 된 경우 순수 Python 파일과 다른 디렉토리에 설치됩니다.

패키지에 데이터 / 스크립트 / 실행 파일이없고 파이썬 파일을 /python/packages/package_name(및 사용할 /python/packages때와 같은 몇 가지 하위 디렉토리가 아닌) 원하는 것으로 가정하면 --prefixone time 명령을 사용할 수 있습니다.

pip install --install-option="--install-purelib=/python/packages" package_name

패키지의 전부 (또는 대부분)를 원하는 경우 다음 ~/.pip/pip.conf을 포함하도록 편집 할 수 있습니다.

[install]
install-option=--install-purelib=/python/packages

그렇게하면 반복해서 지정할 필요가 없습니다.

추가 설치 옵션 ( --prefix/ --install-data/ --install-scripts등)을 지정하지 않으면 패키지에 포함 된 모든 실행 파일 / 데이터 / 스크립트가 기본 위치로 이동합니다 ( 자세한 내용은 사용자 정의 설치 옵션 참조).


답변

라이브러리를 원하는 곳에 정확히 설치하기 위해 터미널이있는 디렉토리를 찾은 다음 사용했습니다.

pip install mylibraryName -t . 

이 페이지에서 가져온 논리 : https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/download


답변

-t 옵션을 언급 한 사람은 없지만 가장 쉬운 방법은 다음과 같습니다.

pip install -t <direct directory> <package>


답변

@Ian Bicking의 답변에 한 점을 추가하십시오.

은 Using --user하나가 원격 서버 (sudo는 사용자 권한없이) 자신의 홈 디렉토리에 일부 파이썬 패키지를 설치하고자하는 경우에도 작업을 설치된 디렉토리를 지정하는 옵션을 선택합니다.

예 :

pip install --user python-memcached

이 명령은 PYTHONPATH에 나열된 디렉토리 중 하나에 패키지를 설치합니다.