ローカルディレクトリの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、2011

2
エラーメッセージを省略しました。それは一般的に底の近くです。
ブクソール2014

パッケージ名の代わりにファイルパスを使用することもできます。つまり、requirements.txtファイルを変更する必要がありますが、pip installコマンドは同じままにしておきます。
asafge 2014年

9
最も投票された答え(マイク・ライオンズの答え)は質問にも答えません。正しい答えであるcodeapeの答えを受け入れてもらえますか?
Piotr Dobrogost 16年

2
他の誰もリンクしていないが、pip.pypa.io
en / stable /

回答:


785

これは私にとってはうまくいきます:

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

--no-index-パッケージインデックスを無視します(--find-links代わりにURL のみを表示します)。

-f, --find-links <URL>-URLまたはHTMLファイルへのパスの場合、アーカイブへのリンクを解析します。ローカルパスまたはfile://URLがディレクトリの場合、ディレクトリリストでアーカイブを探します。


7
--no-indexコマンドpipヘルプからの情報は 、 --no-indexパッケージインデックスを無視してインストール--find-linksます(代わりにURL のみを表示します) 上の情報 --find-linksコマンドピップのヘルプからインストールし -f--find-links <url>アーカイブへのリンクについて解析し、その後、HTMLファイルへのURLまたはパス場合。ローカルパスまたはfile:// URLがディレクトリの場合、ディレクトリリストでアーカイブを探します。
AWrightIV 2015

1
//、これは非常にエレガントな解決策になる可能性があります。特に、ベンダー化との永遠の闘いを考えると、bitprophet.org
Nathan Basanese

これに関する1つの注意は、pip install <some_module>使用しrequirements.txtなくてもかまいませんが、更新されないことrequirements.txtです。代替策は、依存関係をインストールするために実行されるすべてのpip installコマンドをリストするように、Dockerを更新することです。
アンパサンド

python -m pip install -r requirements.txtアクティベートされたvenv環境内でこれを試しました。物事はスムーズにインストールされましたが、pip listを実行しても、パッケージが表示されません。アクティブなvenvにいるとき、またはvenvを非アクティブにした後もです。また、そのパッケージを使用することもできません。ここで何が問題なのか分からない
Shreyan Mehta

pythonアクティベートされた環境のPython実行可能ファイル($ which python)を本当に参照していますか?
codeape、

1364

上記を読んだので、これは古い質問であることに気づきましたが、それは完全に未解決であり、まだGoogle検索結果の一番上にあるので、誰にとっても有効な答えを次に示します。

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

284
この答えは元の質問に対応していないことに気づきましたが、Googleでこれを見つけたときの質問に答えます...
Jonathan

元の質問が変更されました。彼が/path/to/requirements.txtをどのように使用しているかに注目してください。
マイクライオンズ

8
@MikeLyonsは、質問が実際に変更されていないことを確信しています-編集履歴はありません。
Mark Amery 2015年

48
入力した内容を知りたい場合、コマンドの-rは「要件ファイルからのインストール」を意味し、-requirementのショートカットです
Florent Chatterji

2
パッケージ(Djangoなど)をアップグレードする場合は、requirements.txtファイルのバージョンを変更してからを実行しpip install -r /path/to/requirements.txtます。これにより、変更が検出され、パッケージがアップグレードされ、その他はすべてそのままになります。
ユーザー

130

virtualenvがrequirements.txtファイル内のすべてのファイルをインストールするため。

  1. requirements.txtがあるディレクトリに移動します。
  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使用できない場合でもインストールは開始されません。

利用可能なパッケージをインストールする1つの回避策は、リストされたパッケージを1つずつインストールすることです。そのためには、次のコマンドを使用します。利用できないパッケージについて通知する赤い警告が表示されます。

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

要件を適切な pythonにインストールしていることを確認したい場合は、次のようにします。

$ 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

まず、仮想環境を作成します

Python 3.6

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

Python 2.7

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

次に、環境をアクティブ化し、requirement.txtファイルで使用可能なすべてのパッケージをインストールします。

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

9

Python 3を使用して仮想環境内にrequirements.txtファイルをインストールする:

同じ問題がありました。仮想環境内にrequirements.txtファイルをインストールしようとしていました。私は解決策を見つけました。

最初は、次のように仮想環境を作成しました。

virtualenv -p python3 myenv

以下を使用して環境をアクティブ化します。

source myenv/bin/activate

今私はrequirements.txtを使用してインストールしました:

pip3 install -r requirements.txt

インストールは成功し、モジュールをインポートすることができました。


仮想環境内に要件ファイルをインストールしているときにこの問題に直面しました。この問題に対処するために応答を変更しました
janu777

1
Windows上でアナコンダのPython 3.6を使用して、私がしなければならなかったvirtualenv -p python myenvmyenv\Scripts\activate.batpip install -r requirements.txt
bdforbes

1
実際には、逆に、これが唯一の答えのように思えるでローカルに定義されDEPSのインストールについての質問の一部に答えるrequirements.txtvirtualenvのにを。私が何かを逃していない限り?まあありがとう!
davnicwil 2018


7
pip install --user -r requirements.txt 

または

pip3 install --user -r requirements.txt 

--user内部requirements.txtファイルを指定することは可能ですか?
リャン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.