Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何限制对djangopypi2的读取访问?_Python_Django_Pip_Pypi_Cheeseshop - Fatal编程技术网

Python 如何限制对djangopypi2的读取访问?

Python 如何限制对djangopypi2的读取访问?,python,django,pip,pypi,cheeseshop,Python,Django,Pip,Pypi,Cheeseshop,我需要建立一个私有的PyPI存储库。我意识到它们有很多可供选择,在浏览之后,我选择了它们,因为我发现它们的安装说明最清晰,项目也很活跃 我以前从未使用过Django,所以这个问题可能真的是Django问题。我按照说明使用以下命令启动应用程序: $ gunicorn_django djangopypi2.website.settings 存储库正在按我希望的方式工作。配置“~/.pypirc”后,我可以使用以下方式上载包: $ python setup.py sdist upload -r lo

我需要建立一个私有的PyPI存储库。我意识到它们有很多可供选择,在浏览之后,我选择了它们,因为我发现它们的安装说明最清晰,项目也很活跃

我以前从未使用过Django,所以这个问题可能真的是Django问题。我按照说明使用以下命令启动应用程序:

$ gunicorn_django djangopypi2.website.settings
存储库正在按我希望的方式工作。配置“~/.pypirc”后,我可以使用以下方式上载包:

$ python setup.py sdist upload -r local
$ pip install <package-name>
在使用“额外索引url”配置“~/.pip/pip.conf”后,我可以使用以下方式安装软件包:

$ python setup.py sdist upload -r local
$ pip install <package-name>
现在webgui需要在所有页面上登录,因此该部分工作正常,但我无法再使用pip和从命令行上传实用程序

我尝试使用'pip.conf'中的额外索引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'启用身份验证?

如果您希望在本地主机上运行此功能,而不是使用访问控制,我会将gunicorn_django绑定到环回接口:

gunicorn_django -b 127.0.0.1:80 djangopypi2.website.settings
这样,其他机器就无法访问该服务


我怀疑您能否让pip进行身份验证,请参阅。

我没有按照我的要求设置djangopypi2。我试着设置了很多其他pypi服务器,比如PloneSoftwareCenter、mypypi、djangopypi、chishop、pypi服务器、ClueReleaseManager、eggbasket等。但它们要么没有我需要的功能,要么安装失败是因为依赖关系被破坏,要么它们没有我可以遵循的安装说明,或者记录如何使用它,所以我最终制定了一个更简单的解决方案

我并不真正需要“python setup.py upload-r private”部分来为我工作,因为我正在使用包装器脚本来发布我的python包。因此,我只是在脚本中添加了一个-p(private)选项,它只是将包构建并保存到我的服务器的packages目录中

为了使pip安装正常工作,我创建了一个cgi脚本,以pip希望的方式创建指向包的链接。在此之后,为了从我的私有存储库安装pip,我只需将以下内容添加到我的pip.conf中:

$ cat ~/.pip/pip.conf
[global]
extra-index-url = https://username:password@pypi.example.com/simple/

这对我来说是可行的,但是如果有一个像pypi.python.org这样的界面就好了,但是您还可以限制用户应该访问哪些模块。因此,如果有人使用现有的pypi服务器软件设置了一个解决方案,我仍然会感兴趣。实际上,我只是在localhost上进行了尝试,当它开始工作时,我会将它放在服务器上。我认为pip现在可能支持身份验证,看看这一页似乎是这样的:djangopypi2中显然没有实现读访问限制,而且也不是很快就会实现的功能: