我已经使用该命令安装了一个库
pip install git+git://github.com/mozilla/elasticutils.git
Run Code Online (Sandbox Code Playgroud)
它直接从Github存储库安装它.这工作正常,我希望在我的requirements.txt
.我看其他的票像这样但这并没有解决我的问题.如果我把类似的东西
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
Run Code Online (Sandbox Code Playgroud)
在requirements.txt
文件中,pip install -r requirements.txt
结果如下:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
Run Code Online (Sandbox Code Playgroud)
需求文件的文档没有提到使用git+git
协议说明符的链接,因此可能不支持.
有没有人能解决我的问题?
我有一个requirements.txt
文件,我正在使用Travis-CI.看来愚蠢复制中都要求requirements.txt
和setup.py
,所以我希望到一个文件句柄传递给install_requires
在kwarg setuptools.setup
.
这可能吗?如果是这样,我该怎么做呢?
这是我的requirements.txt
档案:
guessit>=0.5.2
tvdb_api>=1.8.2
hachoir-metadata>=1.3.3
hachoir-core>=1.3.3
hachoir-parser>=1.3.4
Run Code Online (Sandbox Code Playgroud) 我正在使用以下requirements.txt
文件在Ubuntu 12.04中安装几个Python包:
numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0
Run Code Online (Sandbox Code Playgroud)
和这两个命令:
$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
(第一个下载包,第二个安装它们).
该过程经常因错误而停止:
Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))
Run Code Online (Sandbox Code Playgroud)
我手动修复:
pip install --user <package>
Run Code Online (Sandbox Code Playgroud)
然后pip install
再次运行第二个命令.
但是,这仅适用于该特定的包.当我pip install
再次运行第二个命令时,进程停止现在抱怨另一个必需的包,我需要再次重复该过程,即:手动安装新的所需包(使用上面的命令),然后运行第二个pip install
命令.
到目前为止,我不得不手动安装six
,pytz …
我有两个分支,开发和生产.每个都有依赖关系,其中一些是不同的.开发指向本身正在开发的依赖项.同样适用于生产.我需要部署到Heroku,它希望每个分支的依赖关系都在一个名为'requirements.txt'的文件中.
组织的最佳方式是什么?
我想到的是:
如何使用pip命令从requirements.txt文件升级所有python包?
试过下面的命令
$ pip install --upgrade -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
因为,python包后缀为版本号(Django==1.5.1
),它们似乎没有升级.有没有比手动编辑requirements.txt文件更好的方法?
编辑
正如Andy在他的回答包中提到的那样固定到特定版本,因此无法通过pip命令升级包.
但是,我们可以pip-tools
使用以下命令实现此目的.
$ pip-review --auto
Run Code Online (Sandbox Code Playgroud)
这将自动从requirements.txt升级所有包(确保pip-tools
使用pip install命令安装).
我开始使用Python.我已经添加了requirements.txt
和setup.py
我的项目.但是,我仍然对这两个文件的目的感到困惑.我读过这setup.py
是为可再发行的东西而requirements.txt
设计的,它是为不可再发行的东西而设计的.但我不确定这是否准确.
这两个文件真的打算如何使用?
我有一个具有多个包依赖关系的项目,其中列出了主要要求requirements.txt
.当我调用pip freeze
它时,将当前安装的软件包打印为普通列表.我更愿意也得到他们的依赖关系,如下所示:
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Jinja2==2.7
Werkzeug==0.8.3
Flask-Admin==1.0.6
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
目标是检测每个特定包的依赖关系:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
Run Code Online (Sandbox Code Playgroud)
并将这些插入我的当前requirements.txt
.例如,对于此输入:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
我想得到:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
有没有办法显示已安装的pip包的依赖关系?
我是python的新手.最近我得到了一个由python编写的项目,它需要一些安装.我运行下面的命令安装但出错了.
# pip install requirements.txt
Collecting requirements.txt
Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索并找到了这个链接,http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txt
但我不太明白该帖子中的解决方案.
以下是我的requirements.txt文件:
# cat requirements.txt
ordereddict==1.1
argparse==1.2.1
python-dateutil==2.2
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pymongo==3.3.0
psutil>=2.0
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来安装这个python项目中所有必需的依赖项?
EDIT1
以下是输出pip3 install -r requirements.txt
.
# pip3 install -r requirements.txt
Requirement already satisfied: ordereddict==1.1 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 1))
Collecting argparse==1.2.1 (from -r requirements.txt (line 2))
Using cached argparse-1.2.1.tar.gz
Collecting python-dateutil==2.2 (from -r requirements.txt …
Run Code Online (Sandbox Code Playgroud) 我正在使用fabric(0.9.4)+ pip(0.8.2),我需要为多个服务器安装一些python模块.所有服务器都有旧版本的setuptools(0.6c8),需要升级为pymongo模块.Pymongo需要setuptools> = 0.6c9.
我的问题是pip开始用pymongo而不是setuptools安装,导致pip停止.需求文件中的随机模块顺序似乎没有帮助.
requirements.txt:
setuptools>=0.6c9
pymongo==1.9
simplejson==2.1.3
Run Code Online (Sandbox Code Playgroud)
有没有办法为pip指定安装顺序,因为它似乎没有正确地执行它?
这可以通过两个单独的需求文件来解决,但如果我现在或将来不需要维护多个需求文件,那将会很好.
点数0.8.3仍然存在问题.
我正在使用pip
需求文件来保存我的依赖项列表.
我还尝试遵循管理依赖项的最佳实践,并在需求文件中提供精确的包版本.例如:
Django==1.5.1
lxml==3.0
Run Code Online (Sandbox Code Playgroud)
问题是:有没有办法告诉Python Package Index中是否有更新的软件包版本可用于内部列出的软件包requirements.txt
?
对于这个特定的例子,目前最新的版本分别是Django和lxml的1.6.2和3.3.4.
我试过了pip install --upgrade -r requirements.txt
,但它说所有都是最新的:
$ pip install --upgrade -r requirements.txt
Requirement already up-to-date: Django==1.5.1 ...
Run Code Online (Sandbox Code Playgroud)
请注意,此时我不想运行实际升级 - 我只想查看是否有可用的更新.
python ×10
requirements.txt ×10
pip ×8
deployment ×1
github ×1
heroku ×1
package ×1
packages ×1
pypi ×1
setup.py ×1
setuptools ×1
virtualenv ×1