로컬 디렉토리의 requirements.txt 파일에 따라 pip를 사용하여 패키지를 설치하는 방법은 무엇입니까?


1082

여기 문제가 있습니다

다음과 같은 requirements.txt가 있습니다.

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

모든 패키지 + 기타를 포함하는 로컬 아카이브 디렉토리가 있습니다.

나는 새로운 virtualenv를 만들었습니다.

bin/virtualenv testing

활성화 할 때 로컬 아카이브 디렉토리에서 requirements.txt에 따라 패키지를 설치하려고했습니다.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

설치가 정상임을 나타내는 출력이 있습니다.

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

그러나 나중에 확인하면 패키지가 제대로 설치되지 않았 음을 알 수 있습니다. 패키지를 가져올 수 없으며 virtualenv의 site-packages 디렉토리에 없습니다. 그래서 무엇이 잘못 되었습니까?


4
--no-indexPyPI를 보지 않도록 사용하려고 했습니까 ?
Hugo Tavares

2
오류 메시지를 확인했습니다. 일반적으로 바닥 근처에 있습니다.
bukzor

패키지 이름 대신 파일 경로를 사용할 수 있으므로 requirements.txt 파일을 변경해야하지만 pip install 명령은 동일하게 유지해야합니다.
asafge

9
가장 맹렬한 대답 (마이크 리용의 것)은 그 질문에 대답조차하지 않습니다 . 올바른 코덱 코드의 답변을 받아 주시겠습니까?
Piotr Dobrogost

답변:


785

이것은 나를 위해 작동합니다 :

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index-패키지 색인을 무시하십시오 ( --find-links대신 URL 만보고).

-f, --find-links <URL>-html 파일의 URL 또는 경로 인 경우 아카이브 링크를 구문 분석하십시오. file://디렉토리 인 로컬 경로 또는 URL 인 경우 디렉토리 목록에서 아카이브를 찾으십시오.


7
--no-indexpip 명령의 정보는 --no-index 패키지 색인 무시 ( --find-linksURL 대신 보고 만) 설치에 도움이 됩니다. pip 명령 명령 에 대한 정보는 --find-linksinstall -f , --find-links <url>URL 또는 html 파일 경로 인 경우 아카이브 링크를 구문 분석합니다. 로컬 경로 또는 file : // url이 디렉토리 인 경우 디렉토리 목록에서 아카이브를 찾으십시오.
AWrightIV

1
//, 이것은 벤더 화와의 영원한 투쟁을 고려할 때 매우 우아한 해결책이 될 수 있습니다 : bitprophet.org/blog/2012/06/07/on-vendorizing
Nathan Basanese

이것에 대한 한 가지주의 사항은 pip install <some_module>사용하지 않을 수 requirements.txt있지만 업데이트되지는 않는다는 것 requirements.txt입니다. 대안은 종속 항목을 설치하기 위해 실행되는 모든 pip 설치 명령을 나열하도록 도커를 업데이트하는 것일 수 있습니다.
앰퍼샌드

python -m pip install -r requirements.txt활성화 된 venv 환경 내부에서 시도했습니다 . 부드럽게 설치되었지만 pip 목록을 수행하면 활성 venv에 있거나 venv를 비활성화 한 후에도 해당 패키지를 표시하지 않습니다. 또한 해당 패키지를 사용할 수 없습니다. 그나마 잘못 여기에 알
Shreyan 메타에게

당신은 확실 python활성화 된 환경의 파이썬 실행 파일을 의미한다 ( $ which python)?
codeape

1363

위의 내용을 읽었으며 이것이 오래된 질문이라는 것을 알고 있지만 완전히 해결되지 않았으며 여전히 Google 검색 결과의 최상위에 있으므로 모든 사람에게 적합한 답변이 있습니다.

pip install -r /path/to/requirements.txt

284
이 답변이 원래 질문에 대한 답변이 아니라는 것을 알고 있지만 Google에서 찾은 질문에 대한 답변입니다.
Jonathan

원래 질문이 변경되었습니다. 현재 /path/to/requirements.txt를 어떻게 사용하고 있는지 확인하십시오.
Mike Lyons

8
@ MikeLyons는 질문이 실제로 변경되지 않았 음을 확신합니다. 편집 기록이 없습니다.
Mark Amery

48
입력 한 내용을 알고 자하는 경우 명령의 -r은 "요구 사항 파일에서 설치"를 의미하며-요구 사항
Florent Chatterji

2
패키지 (예 : Django)를 업그레이드하고 싶은 경우, requirements.txt 파일에서 버전을 변경 한 다음를 실행 pip install -r /path/to/requirements.txt합니다. 변경 사항을 감지하고 패키지를 업그레이드하며 다른 모든 내용은 그대로 둡니다.
사용자

129

virtualenv가 requirements.txt 파일의 모든 파일을 설치하십시오.

  1. requirements.txt가있는 디렉토리로 cd
  2. 당신의 virtualenv를 활성화
  3. 실행 : pip install -r requirements.txt 쉘에서

3
구글을 위해 "pyenv virtualenv pip install requirements.txt 작동하지 않음"
Jerad

그것은 다른 답변 대신 나를 위해 작동합니다. ty
Jo Eark

58

나는 비슷한 문제가 있었다. 나는 이것을 시도했다 :

pip install -U -r requirements.txt 

(-U = 이미 설치된 경우 업데이트)

그러나 문제는 계속되었습니다. 개발을위한 일부 일반 라이브러리가 누락되었음을 깨달았습니다.

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

이것이 도움이 될지 모르겠습니다.


32
pip install -r requirements.txt

자세한 내용은 도움말 옵션을 확인하십시오.

pip install --help

옵션 '-r'을 찾을 수 있습니다

-r, --requirement 주어진 요구 사항 파일에서 설치합니다. 이 옵션은 여러 번 사용할 수 있습니다.

일반적으로 사용되는 pip 설치 옵션에 대한 추가 정보 : (pip install 명령의 도움말 옵션)

여기에 이미지 설명을 입력하십시오

위의 옵션은 완전한 옵션입니다. 전체 옵션 목록을 보려면 pip install --help를 사용하십시오.


26

짧은 답변

pip install -r /path/to/requirements.txt

또는 다른 형태로 :

python -m pip install -r /path/to/requirements.txt

설명

여기서는 -r간단한 형식이며 지정된 파일 에서 설치를 --requirement요청 합니다.piprequirements

piprequirements파일에 나열된 모든 항목의 사용 가능 여부를 확인한 후에 만 ​​설치를 시작하며 사용 가능한 항목 이 없어도 설치를 시작하지 않습니다 requirement.

사용 가능한 패키지를 설치하는 한 가지 해결 방법은 나열된 패키지를 하나씩 설치하는 것입니다. 이를 위해 다음 명령을 사용하십시오. 사용할 수없는 패키지에 대해 알려주는 빨간색 경고가 표시됩니다.

cat requirements.txt | xargs -n 1 pip install

주석 (으로 시작하는 줄 #)과 빈 줄 을 무시하려면 다음을 사용하십시오.

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install

20

종종 PyPI를 조사하지 않고 로컬 아카이브에서 빠른 설치를 원할 것입니다.

먼저 요구 사항을 충족하는 아카이브를 다운로드하십시오.

$ pip install --download <DIR> -r requirements.txt

그런 다음 –find-linksand를 사용하여 설치하십시오 –no-index.

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt

no such option: --download
Max Malysh

12

나는 개발자들이 "인터넷에서 찾은 지시를 따라"뭉친 많은 시스템을 가지고 일한다. 귀하 pip와 귀하 python가 동일한 경로 / 사이트 패키지를 보지 않는 것이 매우 일반적입니다 . 이런 이유로, 이상한 점이 생기면 다음과 같이 시작합니다.

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

그것은 행복한 시스템입니다 입니다.

아래는 불행한 시스템 입니다. (적어도 그것은 다른 사람들을 불행하게 만드는 행복하게 무지한 시스템입니다.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

그것이 불행 때문에이 pip있다 (python3.6과)를 사용하여/usr/local/lib/python3.6/site-packages 동안 python이다 (python2.7 등)을 사용하여/usr/local/lib/python2.7/site-packages

요구 사항을 올바르게 설치하고 싶을 때 파이썬에 .

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

"부러지지 않았다면 고치려고하지 마십시오." 그 DevOps 버전은 "만약 당신이 그것을 깨뜨리지 않고 그 문제를 해결할 수 있다면, 그것을 고치려고하지 마십시오."


10

우선, 가상 환경을 만드십시오

파이썬 3.6에서

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

파이썬 2.7에서

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

그런 다음 환경을 활성화하고 requirements.txt 파일에서 사용 가능한 모든 패키지를 설치하십시오.

source <path/to/new/virtualenv>/bin/activate
pip install -r <path/to/requirement.txt>

9

Python 3을 사용하여 virtual env에 requirements.txt 파일 설치

나는 같은 문제가 있었다. 가상 환경 내에 requirements.txt 파일을 설치하려고했습니다. 해결책을 찾았습니다.

처음에는 다음과 같이 가상 환경을 만들었습니다.

virtualenv -p python3 myenv

다음을 사용하여 환경을 활성화하십시오.

source myenv/bin/activate

이제 다음을 사용하여 requirements.txt를 설치했습니다.

pip3 install -r requirements.txt

성공적으로 설치되었으며 모듈을 가져올 수있었습니다.


가상 환경 내에 요구 사항 파일을 설치하는 동안이 문제에 직면했습니다. 이 문제를 해결하기 위해 응답을 수정했습니다.
janu777

1
Windows에서 아나콘다 파이썬 3.6을 사용하여, 내가해야 할 일을했을 virtualenv -p python myenv, myenv\Scripts\activate.bat,pip install -r requirements.txt
bdforbes

1
사실, 반대로이 유일한 해답처럼 보인다 수행 에 로컬로 정의 deps를 설치하는 방법에 대한 질문의 일부 답변 requirements.txtVIRTUALENV에 있습니다. 내가 빠진 것이 아니라면? 어쨌든 고마워!
davnicwil

8

이 시도

python -m pip install -r requirements.txt

7
pip install --user -r requirements.txt 

또는

pip3 install --user -r requirements.txt 

--user내부 requirements.txt파일 을 지정할 수 있습니까?
liang
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.