我们有几个自己的python包,并希望使用简单的界面为他们创建本地pypi存储库,如https://pypi.python.org/simple/
由于安全原因,我想在没有任何镜像的情况下为本地创建此存储库,它将被置于apache的控制之下
命令pypimirror
看起来必须初始化一次,需要镜像.
如何基于本地python包生成PyPi Simple Index.
还有其他任何简单的脚本吗?
小智 25
我们公司有类似的需求.基本上我们如何将"封闭源"包上传到索引,同时能够像在PyPI上一样安装它们?
我们赞助了一个名为devpi的项目,它充当PyPI缓存(您从PyPI访问的软件包将缓存在您的服务器上)以及强大而快速的索引服务器.该文档可从http://doc.devpi.net/latest/获得.
路线图上的下一步是镜像多地理部署.要在机器上踢轮胎大约需要5分钟(请查看快速入门指南).最后devpi兼容pip和easy_install(即你不需要在你的机器上安装devpi客户端).
希望这有帮助.
镜子没有什么特别之处,您可以mod_rewrite
自己设置它.
将包转储到映射到URL的目录中.我在这里使用/url/to/my/pypi/
一个例子.文件夹层次结构应该是/foo/bar/simple/[name of package]/[name of tarball]
将以下内容添加到.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]
Run Code Online (Sandbox Code Playgroud)更新您~/.pip/pip.conf
的指向新存储库:
[global]
index-url = http://localhost/url/to/my/pypi/
Run Code Online (Sandbox Code Playgroud)
或者-i http://localhost/url/to/my/pypi/
在命令行中使用该选项.
最简单的方法是将distfiles包组织到名为dirs的包中,并运行一个简单的HTTP服务器。不需要额外的程序包,Python的stdlib就足够了。目录结构示例:
??? repodir
??? setuptools
? ??? setuptools-38.1.0-py2.py3-none-any.whl
? ??? setuptools-38.1.0.zip
? ??? setuptools-39.2.0-py2.py3-none-any.whl
? ??? setuptools-39.2.0.zip
??? wheel
? ??? wheel-0.31.1-py2.py3-none-any.whl
...
Run Code Online (Sandbox Code Playgroud)
启动服务器:
??? repodir
??? setuptools
? ??? setuptools-38.1.0-py2.py3-none-any.whl
? ??? setuptools-38.1.0.zip
? ??? setuptools-39.2.0-py2.py3-none-any.whl
? ??? setuptools-39.2.0.zip
??? wheel
? ??? wheel-0.31.1-py2.py3-none-any.whl
...
Run Code Online (Sandbox Code Playgroud)
本地存储库已启动并正在运行。现在,您可以将存储库传递给pip
:
$ pip install wheel --extra-index-url=http://127.0.0.1:9000
Run Code Online (Sandbox Code Playgroud)
甚至将repo URL保留在中pip.conf
,以免每次都不输入它:
# pip.conf
[global]
extra-index-url=http://127.0.0.1:9000
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
40891 次 |
最近记录: |