Python 当pypi关闭时,如何使用easy_安装和构建?

Python 当pypi关闭时,如何使用easy_安装和构建?,python,plone,easy-install,buildout,Python,Plone,Easy Install,Buildout,我正在使用自动下载和设置Plone安装的许多依赖项。buildout或多或少地使用easy_install下载并安装一堆Python鸡蛋。这通常是可行的,但如果任何依赖项都无法下载,或者如果我希望buildout找到一个不适合pypi的内部包,它就不起作用了。我如何设置我自己的本地版本的pypi来自动镜像我需要的包?对于使用pypi作为元数据而不是代码的包,它仍然依赖于第三方服务器吗。这个项目的主页是。似乎还有越来越多的镜子出现在那里 有关如何设置您自己的包索引的说明,请查看最后解释的解决方案。

我正在使用自动下载和设置Plone安装的许多依赖项。buildout或多或少地使用easy_install下载并安装一堆Python鸡蛋。这通常是可行的,但如果任何依赖项都无法下载,或者如果我希望buildout找到一个不适合pypi的内部包,它就不起作用了。我如何设置我自己的本地版本的pypi来自动镜像我需要的包?对于使用pypi作为元数据而不是代码的包,它仍然依赖于第三方服务器吗。这个项目的主页是。似乎还有越来越多的镜子出现在那里

有关如何设置您自己的包索引的说明,请查看最后解释的解决方案。然后,您还可以在其中托管自己的内部包。其优点还在于,这些版本是以这种方式固定的。(有关直接在构建中锁定版本的方法,请查看)


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

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


这是最近发布的一项功能。

此页面显示了如何使用@moraes post中提到的备用镜像,但为了便于安装、构建、虚拟化以及pip:


自2010年年中以来,PyPI已在
buildout.cfg
中配置
index
,例如

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

更多镜像:

对于zc.buildout:使用其本地下载缓存功能。缓存的内容主要有三种:

  • 外部扩展,即
  • 来自某个distserver的蛋,即pypi
  • 使用zc.buildout提供的下载基础设施从zc.recipe.cmmi或类似配方下载
对于这三个,我们需要调整全局配置,为extends设置一个缓存文件夹,为eggs和其他下载设置一个缓存文件夹

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

在此文件夹中创建文件夹
扩展缓存
下载

.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中的这两个变量。首次成功运行构建后,后续运行将以脱机模式运行
/bin/buildout-o

作为一种副作用,如果在脱机模式下使用,即当不需要新下载但某些配置发生更改时,构建速度要快得多


除此之外,运行自己的pypi镜像也是有意义的。作为另一个信息来源,您可能对我不久前写的关于此主题的文章感兴趣:

对于需要通过
requirements.txt
安装在
virtualenv
中的软件包,您必须覆盖
pip.conf
文件,通常位于
~/.pip/pip.conf

pip.conf
文件中:

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

[install]
trusted-host=pypi.python.org
[easy_install]
index-url=https://pypi.python.org/simple/
在这里,如果需要,您可以提供自己的自定义pypi版本的url

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

pydistutils.cfg
文件中:

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

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

这将确保使用
pydistutils.cfg
中提到的pypi url创建您的
venv
。在这里,我们告诉 EasyJuthUng/<代码>用于创建<代码> VVEV<代码> .< /P>下面的大多数答案不是互斥的:使用至少一个,但要考虑更多:在您的构建中本地下载缓存,一个只需要您的包(从下载缓存中)的私有索引,根据下面的MrTopf回答,可能还有一个PyPI镜像。当我希望脱机工作超过几个小时时,我通常至少做这三个选项中的两个。这让我开始了,但是-o选项似乎被打破了(请参阅)。我使用了配置选项
install from cache=true
,同时如上所述指定了
下载缓存
,它工作正常。