pip无法从requirements.txt中找到任何包

时间:2017-10-27 06:41:45

标签: python pip package pypi requirements.txt

我有一个requirements.txt文件,其中列出了以下软件包:

appdirs==1.4.3
APScheduler==3.3.1
asn1crypto==0.22.0
bcrypt==3.1.3
boto3==1.4.4
botocore==1.5.72

当我做pip install -q -U -r requirements.txt;我收到以下错误:

  

无法找到满足要求的版本appdirs == 1.4.3   (来自-r requirements.txt(第1行))(来自版本:)   找不到appdirs的匹配分布== 1.4.3(来自-r requirements.txt(行   1))

但是,以下工作:

$ pip install appdirs
Collecting appdirs
  Downloading appdirs-1.4.3-py2.py3-none-any.whl
Installing collected packages: appdirs
Successfully installed appdirs-1.4.3

一旦我手动安装了appdirs,我就尝试再次运行需求:

$ pip install -q -U -r requirements.txt
  Could not find a version that satisfies the requirement APScheduler==3.3.1 (from -r requirements.txt (line 2)) (from versions: )
No matching distribution found for APScheduler==3.3.1 (from -r requirements.txt (line 2))

我尝试现在指定下一个命令的确切版本:

$ pip install APScheduler==3.3.1           
Collecting APScheduler==3.3.1
  Downloading APScheduler-3.3.1-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 2.8MB/s 
Collecting tzlocal>=1.2 (from APScheduler==3.3.1)
  Downloading tzlocal-1.4.tar.gz
Collecting funcsigs; python_version == "2.7" (from APScheduler==3.3.1)
  Downloading funcsigs-1.0.2-py2.py3-none-any.whl
Collecting six>=1.4.0 (from APScheduler==3.3.1)
  Downloading six-1.11.0-py2.py3-none-any.whl
Collecting pytz (from APScheduler==3.3.1)
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |████████████████████████████████| 491kB 2.2MB/s 
Requirement already satisfied: setuptools>=0.7 in ./.env/lib/python2.7/site-packages (from APScheduler==3.3.1)
Collecting futures; python_version == "2.7" (from APScheduler==3.3.1)
  Downloading futures-3.1.1-py2-none-any.whl
Building wheels for collected packages: tzlocal
  Running setup.py bdist_wheel for tzlocal ... done
  Stored in directory: $HOME/.cache/pip/wheels/dc/d6/f0/84194ccbdd3e2551bdb207e1fc1925efd32956c5767328103b
Successfully built tzlocal
Installing collected packages: pytz, tzlocal, funcsigs, six, futures, APScheduler
Successfully installed APScheduler-3.3.1 funcsigs-1.0.2 futures-3.1.1 pytz-2017.2 six-1.11.0 tzlocal-1.4

如果指定requirements文件,pip如何找不到包?为什么没有它就会一直找到相同的包裹?

PS:所有内容都在名为virtualenv .env 内完成。

$ pip -V
pip 9.0.1 from $PWD/.env/lib/python2.7/site-packages (python 2.7)
$ python -V
Python 2.7.13
$ which python
$PWD/.env/bin/python

执行pip --verbose命令可以:

Collecting asn1crypto==0.22.0 (from -r requirements.txt (line 3))
  1 location(s) to search for versions of asn1crypto:
  * https://pip.<domain>/asn1crypto/
  Getting page https://pip.<domain>/asn1crypto/
  Looking up "https://pip.<domain>/asn1crypto/" in the cache
  No cache entry available
  Starting new HTTPS connection (1): pip.<domain>
  "GET /asn1crypto/ HTTP/1.1" 303 0
  Status code 303 not in [200, 203, 300, 301]
  Looking up "https://pip.<domain>/simple/asn1crypto/" in the cache
  No cache entry available
  "GET /simple/asn1crypto/ HTTP/1.1" 303 0
  Status code 303 not in [200, 203, 300, 301]
  Starting new HTTP connection (1): pypi.python.org
  "GET /simple/asn1crypto/ HTTP/1.1" 403 16
  Could not fetch URL https://pip.<domain>/asn1crypto/: 403 Client Error: SSL is required for url: http://pypi.python.org/simple/asn1crypto/ - skipping
  Could not find a version that satisfies the requirement asn1crypto==0.22.0 (from -r requirements.txt (line 3)) (from versions: )
Cleaning up...
No matching distribution found for asn1crypto==0.22.0 (from -r requirements.txt (line 3))

其中https://pip.<domain>是我们的自定义托管pypi-server layer

1 个答案:

答案 0 :(得分:2)

您需要将pypi服务器上的fallback_url设置为https网址,因为pypi.python.org现在只允许https请求。有关详细信息,请参阅this link (python mailing list)