使用 pip 从 PyPi 镜像安装 IPython

run*_*tao 2 python pip ipython pypi

我想使用 PyPi 镜像(我们公司镜像)加速下载 Python 包,但 pip 无法从镜像中选择正确的 iPython 版本。我猜这个问题可能与 PyPi 索引数据库有关。如果有人知道这个问题,欢迎告诉我。

\n\n

Python版本:

\n\n
(p2) \xe2\x9e\x9c  /tmp python --version\nPython 2.7.13\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的 ~/.pip/pip.conf

\n\n
[global]\nindex-url = http://mirrors.company.com/pypi/simple/\ntrusted-host=mirrors.company.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用时打印出以下错误信息pip install ipython

\n\n
(p2) \xe2\x9e\x9c  /tmp pip install ipython\nCollecting ipython\n  Downloading http://mirrors.aliyun.com/pypi/packages/79/63/b671fc2bf0051739e87a7478a207bbeb45cfae3c328d38ccdd063d9e0074/ipython-6.1.0.tar.gz (5.1MB)\n    100% |\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 5.1MB 7.6MB/s\n    Complete output from command python setup.py egg_info:\n\n    IPython 6.0+ does not support Python 2.6, 2.7, 3.0, 3.1, or 3.2.\n    When using Python 2.7, please install IPython 5.x LTS Long Term Support version.\n    Beginning with IPython 6.0, Python 3.3 and above is required.\n\n    See IPython `README.rst` file for more information:\n\n        https://github.com/ipython/ipython/blob/master/README.rst\n\n    Python sys.version_info(major=2, minor=7, micro=13, releaselevel=\'final\', serial=0) detected.\n\n\n\n    ----------------------------------------\nCommand "python setup.py egg_info" failed with error code 1 in /private/var/folders/6c/gbrkbbzd4gvdp56x7x8s6xpw0000gn/T/pip-build-FVITyR/ipython/ \n
Run Code Online (Sandbox Code Playgroud)\n

Mat*_*att 5

您的代理/镜像未正确实现pep503,并且您的 pip 可能已过时(您需要 pip 9.0.1+)。自2016 年 12 月以来,PyPI 已得到修复,可以正确公开额外的元数据,告诉 Pip 包与哪个 Python 版本兼容(今年在 PyCon和PyBay上的演讲)。

为了确保这一点,请检查 PyPI 上的此页面,您可以在源代码中看到 IPython 6.0.0 的链接:

<a data-requires-python="&gt;=3.3" href="../../packages/.../ipython-6.0.0.tar.gz" >ipython-6.0.0.tar.gz</a><br/>
Run Code Online (Sandbox Code Playgroud)

现在检查镜像上的同一页面...它缺少该data-requires-python="&gt;=3.3"字段,因此 pip 无法知道 IPython 6.0 不兼容。我建议联系运行镜像的人来更新它。

另外请将您的镜像设置为仅允许 https,否则您将不确定您下载的内容是否被篡改!