使用requirements.txt安装失败,但使用pip install

时间:2016-12-21 19:39:14

标签: python django python-2.7 pip requirements.txt

我在使用requirements.txt与使用pip直接安装时看到一些奇怪的行为。希望你能对此有所了解。

这可能与此未回答的问题相同:pip install -r requirements.txt fails on scipy, but works when run manually line-by-line

Python 2.7.6

Django 1.6.11

当我使用requirements.txt安装mailchimp3时,如下所示:

sudo /usr/local/python/django/bin/pip install -r config/myvr/requirements.txt

安装失败,我看到了:

Collecting mailchimp3==2.0.3 (from -r config/myvr/requirements.txt (line 73)) 2016-12-21 11:23:22,286 [salt.loaded.int.module.cmdmod][ERROR ][1759] stderr: /usr/local/python/django/local/lib/python2.7/site-packages/pip/req/req_f ile.py:129: UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options. cmdoptions.check_install_build_global(options, opts) /usr/local/python/django/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLCon text object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more informati on, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Could not find a version that satisfies the requirement mailchimp3==2.0.3 (from -r config/myvr/requirements.txt (line 73)) (from versions: ) No matching distribution found for mailchimp3==2.0.3 (from -r config/myvr/requirements.txt (line 73)) 2016-12-21 11:23:22,286 [salt.loaded.int.module.cmdmod][ERROR ][1759] retcode: 1

但是,当我像这样直接安装时: sudo /usr/local/python/django/bin/pip install mailchimp3==2.0.3

安装成功:

(django)ubuntu@dev:~/myvr$ sudo /usr/local/python/django/bin/pip install mailchimp3==2.0.3 The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting mailchimp3==2.0.3 /usr/local/python/django/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning. SNIMissingWarning /usr/local/python/django/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning Downloading mailchimp3-2.0.3-py2.py3-none-any.whl (83kB) 100% |████████████████████████████████| 92kB 413kB/s Requirement already satisfied: requests in /usr/local/python/django/lib/python2.7/site-packages (from mailchimp3==2.0.3) Installing collected packages: mailchimp3 Successfully installed mailchimp3-2.0.3 (django)ubuntu@dev:~/myvr$

必须使用需求文件进行安装,而不是直接安装到我们的生产环境中。你有机会知道这里有什么吗?

您还需要其他信息吗?

2 个答案:

答案 0 :(得分:1)

问题是在requirements.txt文件中存在对lxml的依赖,并且该依赖项设置为不带线程安装,所以看起来像这样

lxml==3.5.0 --install-option='--without-threading'

任何时候传递--install-option(或--build-options--global-options),都会禁用所有轮子使用。

mailchimp3的情况下,它需要正确安装轮子。

我们的解决方案是将lxml的安装移到单独的构建步骤中。

答案 1 :(得分:0)

无法检查您的错误消息,但您可以检查您的requirements.txt是否包含对同一文件中列出的包具有依赖性的包。假设req文件包含pack1和pack2,如果稍后调用pack1 import pack2和pack2,则安装将失败。我遇到了问题,这里有一个类似的problem on github