これが問題です
次のような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ディレクトリに何も見つかりません。それで何が悪かったのですか?
これは私のために働く:
$ 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がディレクトリの場合は、ディレクトリ一覧でアーカイブを探します。
私は上記を読みました、これが古い質問であることに気づいてください、しかしそれは完全に未解決でまだ私のグーグル検索結果のトップにいるので、ここに皆のために働く答えがあります:
pip install -r /path/to/requirements.txt
Virtualenvがrequirements.txtファイル内のすべてのファイルをインストールするため。
pip install -r requirements.txt
を実行します。私は同様の問題を抱えていました。私はこれを試しました:
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
これがあなたに役立つかどうか私は知りません。
多くの場合、PyPIを調べずに、ローカルアーカイブから高速インストールすることを望みます。
まず、あなたの要求を満たすアーカイブをダウンロードしてください。
$ pip install --download <DIR> -r requirements.txt
次に、–find-links
と–no-index
を使ってインストールします。
$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt
私は開発者が「インターネットで見つけた指示に従う」ことによって悪用されてきた多くのシステムで働いています。あなたのpip
とpython
が同じパス/ site-packagesを見ていないのはごく普通のことです。このため、私が奇妙に遭遇したとき、私はこれをすることから始めます:
$ 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
は/usr/local/lib/python3.6/site-packages
を使用している(python3.6および)のに対しpython
は/usr/local/lib/python2.7/site-packages
を使用しているので不幸です
rightpythonに要件をインストールしていることを確認したい場合は、次のようにします。
$ 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版は、「あなたがそれを壊さなかった、そしてあなたがそれを回避することができるなら、それを直そうとしないでください」です。
これを試して
python -m pip install -r requirements.txt
簡単な答え
pip install -r /path/to/requirements.txt
または別の形式で:
python -m pip install -r /path/to/requirements.txt
説明
ここで、-r
は--requirement
の短縮形で、指定されたpip
ファイルからインストールするようにrequirements
に要求します。
pip
は、requirements
ファイルにリストされているすべての項目の可用性を確認した後にのみインストールを開始します。1つのrequirement
が使用できない場合でもインストールは開始されません。
利用可能なパッケージをインストールするための1つの回避策は、リストされたパッケージを一つずつインストールすることです。それには次のコマンドを使用してください。利用できないパッケージについて知らせるために赤い警告が表示されます。
cat requirements.txt | xargs -n 1 pip install
コメント(#
で始まる行)と空白行を無視するには、次のようにします。
cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install
python 3を使ってvirtual envの中にrequirements.txtファイルをインストールする:
私は同じ問題を抱えていました。仮想環境内にrequirements.txtファイルをインストールしようとしていました。私はその解決策を見つけました。
最初は、このようにして仮想環境を作成しました。
virtualenv -p python3 myenv
以下を使用して環境を活動化します。
source myenv/bin/activate
これで、Requirements.txtをインストールしました。
pip3 install -r requirements.txt
インストールは成功し、モジュールをインポートすることができました。