【发布时间】:2013-01-15 21:41:59
【问题描述】:
我需要设置一个私有 PyPI 存储库。我发现它们有很多可供选择,在四处浏览之后,我选择了djangopypi2,因为我发现它们的安装说明最清晰,并且项目处于活动状态。
我以前从未使用过 Django,所以这个问题可能真的是一个 Django 问题。我按照说明使用以下命令启动了应用程序:
$ gunicorn_django djangopypi2.website.settings
存储库正在按我的意愿工作。配置 '~/.pypirc' 后,我可以使用以下方式上传包:
$ python setup.py sdist upload -r local
在使用“extra-index-url”配置“~/.pip/pip.conf”后,我可以使用以下方法安装软件包:
$ pip install <package-name>
但是,任何人都可以浏览和下载我的包。似乎仅在上传包时才需要身份验证。我尝试使用此示例要求登录所有页面: Best way to make Django's login_required the default
然后设置:
LOGIN_REQUIRED_URLS = (
r'/(.*)$',
)
LOGIN_REQUIRED_URLS_EXCEPTIONS = (
r'/users/login(.*)$',
r'/users/logout(.*)$',
)
现在 webgui 需要在所有页面上登录,因此该部分按预期工作,但我无法再从命令行使用 pip 和上传实用程序。
我尝试使用“pip.conf”中的 extra-index-url 设置“pip install xxx”,如下所示:
extra-index-url = http://username:password@127.0.0.1:8000/simple/
但它说“根本没有找到 xxx 的发行版”
'python setup.py sdist upload' 给出:
Submitting dist/xxx-0.0.1.tar.gz to http://127.0.0.1:8000/
Upload failed (302): FOUND
所以问题是,我如何启用“pip”和“python setup.py register/upload”的身份验证?
【问题讨论】:
-
显然在 djangopypi2 中没有实现读取访问限制,并且不是即将推出的功能:github.com/popen2/djangopypi2/issues/12
标签: python django pip pypi cheeseshop