14

我正在使用buildout自动下载和设置我的 Plone 安装的许多依赖项。buildout 或多或少使用 easy_install 来下载和安装一堆 Python 鸡蛋。这通常有效,但如果无法下载任何依赖项,或者我希望构建找到不适合 pypi 的内部包,则它不起作用。如何设置我自己的本地版本的 pypi 来自动镜像我需要的包?对于使用 pypi 作为元数据但不使用代码的软件包,它是否仍会依赖第三方服务器?

4

7 回答 7

13

以下是有关如何设置自己的 PyPi 镜像的说明。这个项目的主页在这里。那里似乎也有越来越多的镜子。

有关如何设置自己的包索引的说明,请查看此博客文章,其中最后解释了一种解决方案。然后你也可以在那里托管你自己的内部包。优点还在于版本是这样固定的。(有关在构建中直接固定版本的方法,请查看这篇文章)。

如果 PyPI 上只有元数据并且存档存储在其他地方,您当然也可以将其复制到您的索引中。如果您只使用 PyPI 镜像,我假设您仍然需要访问这些服务器。

于 2009-02-17T17:22:44.910 回答
8

您也可以使用镜子。把它放在“~/.pip/pip.conf”的“[global]”部分:

index-url = http://d.pypi.python.org/simple/

这是此处宣布的最新功能。

于 2010-07-20T16:36:12.737 回答
5

这个页面展示了如何使用@moraes 帖子中提到的备用镜像,但对于 easy_install、buildout 和 virtualenv 以及 pip:

http://jacobian.org/writing/when-pypi-goes-down/

于 2010-08-03T04:44:42.970 回答
4

在 zc.buildout 的情况下:使用其本地下载缓存功能。缓存主要有三样东西:

对于所有这三个,我们需要调整全局配置并为扩展设置一个缓存文件夹,并为鸡蛋和其他下载设置一个缓存文件夹。

在您的主文件夹中创建一个.buildout文件夹。

在此文件夹中创建文件夹extends-cachedownloads

.buildout创建文件 default.cfg 时:

[buildout]  
extends-cache = /home/USERNAME/.buildout/extends-cache 
download-cache = /home/USERNAME/.buildout/downloads

所以你有了:

.buildout/
├── default.cfg
├── downloads
└── extends-cache

就是这样。确保不要在您的特定构建中覆盖 default.cfg 中的这两个变量。在第一次成功运行 buildout 后,后续运行将在离线模式下运行./bin/buildout -o

作为副作用,如果在离线模式下使用构建会更快,即当没有新下载但某些配置发生更改时

除此之外,运行自己的 pypi-mirror 是有意义的。作为另一个信息来源,您可能会对我前段时间写的关于这个主题的文章感兴趣:http: //bluedynamics.com/articles/jens/setup-z3c.pypimirror

于 2011-11-30T21:36:37.467 回答
2

配置indexbuildout.cfg例如

[buildout]
index = http://a.pypi.python.org/
find-links = 

更多镜像: http: //www.pypi-mirrors.org/

于 2011-05-27T04:51:34.213 回答
0

PyPI 自 2010 年年中以来就有镜像http://pypi.python.org/mirrors

于 2011-04-08T02:37:06.417 回答
0

对于您virtualenv通常需要通过一个requirements.txt(或可能单独)安装的软件包,您必须覆盖您的pip.conf文件,通常位于~/.pip/pip.conf

在您的pip.conf文件中:

[global]
index-url=https://pypi.python.org/simple/

[install]
trusted-host=pypi.python.org

如果需要,您可以在此处提供您自己的自定义 pypi 版本的 url。

virtualenv如果您希望在通过创建时还使用另一个 pypi 服务器,则easy_install需要覆盖pydistutils.cfg通常位于的文件~/pydistutils.cfg

pydistutils.cfg文件中:

[easy_install]
index-url=https://pypi.python.org/simple/

这将确保venv使用pydistutils.cfg. 在这里,我们告诉easy_install使用https://pypi.python.org/simple/来创建venvs.

于 2018-08-03T19:36:04.983 回答