How to install packages using pip according to the requirements.txt file from a local directory?
这就是问题所在
我有一个requirements.txt,它看起来像:
1 2 3 4 5 6 7 8 9 10 11 | 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
1 | bin/virtualenv testing |
激活后,我尝试根据本地归档目录中的requirements.txt安装包。
1 2 | source bin/activate pip install -r /path/to/requirements.txt -f file:///path/to/archive/ |
我得到了一些输出,似乎表明安装良好
1 2 3 4 5 6 7 | 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的站点包目录中找不到任何包。那出什么事了?
我已经阅读了以上内容,意识到这是一个老问题,但它完全没有解决,仍然是我的谷歌搜索结果的顶端,所以这里有一个适用于所有人的答案:
1 | pip install -r /path/to/requirements.txt |
这对我很有用:
1 | $ pip install -r requirements.txt --no-index --find-links file:///tmp/packages |
以便virtualenv安装requirements.txt文件中的所有文件。
我也有类似的问题。我试过这个:
1 | pip install -U -r requirements.txt |
(-u=如果已安装,则更新)
但问题仍然存在。我意识到一些用于开发的通用库被遗漏了。
1 | sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk |
我不知道这是否对你有帮助。
1 | pip install -r requirements.txt |
有关详细信息,请检查帮助选项。
1 | pip install --help |
我们可以找到选项-R'
-r, --requirement Install from the given requirements file. This option can be
used multiple times.
有关一些常用PIP安装选项的详细信息:(这是PIP安装命令的帮助选项)
此外,以上是一整套选项。请使用pip install--help获得完整的选项列表。
通常,您需要从本地存档中快速安装,而不需要探测pypi。
首先,下载满足您要求的档案:
1 | $ pip install --download <DIR> -r requirements.txt |
然后,使用
1 | $ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt |
我使用了很多被开发者"按照他们在互联网上找到的方向"所破坏的系统。您的
1 2 3 4 5 6 7 8 | $ 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) |
这是一个快乐的系统。
下面是一个不愉快的系统。(或者至少这是一个幸福地无知的系统,导致其他人不快乐。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ 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 |
它不高兴是因为
当我想确保我在正确的python上安装需求时,我会这样做:
1 2 3 4 5 6 7 | $ 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的版本是,"如果你没有破坏它,你可以解决它,就不要尝试修复它。"
1 | pip install -r /path/to/requirements.txt |
这里,
安装可用软件包的一个解决方法是逐个安装列出的软件包。为此,请使用以下命令。将显示红色警告,通知您不可用的软件包。
1 | cat requirements.txt | xargs -n 1 pip install |
要忽略注释(以
1 | cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install |
试试这个
1 | python -m pip install -r requirements.txt |
使用python 3在虚拟环境中安装requirements.txt文件:
我也有同样的问题。我试图在虚拟环境中安装requirements.txt文件。我找到了解决办法。
最初,我用这种方式创建了我的虚拟环境:
1 | virtualenv -p python3 myenv |
使用以下方法激活环境:
1 | source myenv/bin/activate |
现在我安装了requirements.txt,使用:
1 | pip3 install -r requirements.txt |
安装成功,我可以导入模块。