如何在没有镜像的情况下创建本地自己的PyPI仓库索引?

2024-10-16 20:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有几个自己的python包,希望使用简单的接口(如https://pypi.python.org/simple/)为它们创建本地pypi存储库

出于安全原因,我只想为本地创建这个存储库,不需要任何镜像,它将由apache控制

命令pypimirror看起来必须初始化一次,这需要镜像。

如何基于本地python包生成PyPi简单索引。

还有其他简单的脚本吗?


Tags: httpsorg命令脚本pypi镜像apache原因
3条回答

我们公司也有类似的需求。基本上,我们如何将“封闭源代码”包上传到索引中,同时像在PyPI上一样安装它们?

我们赞助了一个名为devpi的项目,它充当一个PyPI缓存(从PyPI访问的包将被缓存在服务器上)以及一个强大而快速的索引服务器。文档可在http://doc.devpi.net/latest/找到。

路线图上的下一步是针对多个地理信息系统部署的镜像。在你的机器上踢轮胎大约需要5分钟(看快速入门指南)。最后,devpi与pip和easy_安装都兼容(即,您不需要在计算机上安装devpi客户端)。

希望能帮上忙。

镜子没有什么特别的,你可以用mod_rewrite自己设置它。

  1. 将包转储到映射到URL的目录中。这里我使用/url/to/my/pypi/一个例子。文件夹层次结构应该是/foo/bar/simple/[name of package]/[name of tarball]

  2. 将以下内容添加到.htaccess或包所在目录的全局配置中。最后一行是返回到全局pypi索引:

    Options +Indexes
    
    RewriteEngine On
    
    RewriteRule ^/robots.txt - [L]
    RewriteRule ^/icons/.* - [L]
    RewriteRule ^/index\..* - [L]
    
    RewriteCond /foo/bar/simple/ !-f
    RewriteCond /foo/bar/simple/ !-d
    RewriteRule ^/(.*)/?$ http://pypi.python.org/ [R,L]
    
  3. 更新您的~/.pip/pip.conf以指向新存储库:

    [global]
    index-url = http://localhost/url/to/my/pypi/
    

    或者在命令行中使用-i http://localhost/url/to/my/pypi/选项。

既然你要在这里回答:

看看^{},它似乎正是你想要的。

相关问题 更多 >