从私人pypiserver安装python包

Rem*_*ing 4 python pip setuptools pypi

我在nginx代理后面设置了一个pypiserver,它使用htpasswd进行身份验证.我目前能够上传sdists,但我无法弄清楚如何下载它们.我希望能够在运行时setup.py test以某种方式下载它们pip.这可能吗?

[distutils]
index-servers =
    private

[private]
repository = https://example.com/pypi
username = remco
password = mypass
Run Code Online (Sandbox Code Playgroud)

为了使其更加困难,服务器当前正在使用未经验证的ssl连接.

我尝试了基于http://pythonhosted.org/setuptools/setuptools.html#setuptools-package-index的以下设置,但唯一的文档是'XXX'

#!/usr/bin/env python2.7

from setuptools import setup


setup(
    name='asd',
    version='0.0.1',
    package_index='https://example.com/pypi/simple',
    test_suite='test',
    tests_require=['foo==0.0.1'])
Run Code Online (Sandbox Code Playgroud)

kni*_*tti 7

使用您的索引pip创建~/.pip/pip.conf此内容:

[global]
index-url = https://remco:mypass@build.d-centralize.nl/pypi/simple
cert = /etc/ssl/certs/your_cert_CA.pem
Run Code Online (Sandbox Code Playgroud)

上一点点的文件pip.conf在这里和pypiserver 这里

或许你也可以尝试使用package_index='https://user:pass@example.com/pypi/simplesetup.py.


Rem*_*ing 3

必须正确设置服务器证书。要使用 pip 上传,必须创建一个有效的~/.pypirc文件:

[distutils]
index-servers = example

[example]
repository = https://example.com/pypi
username = myname
password = mypass
Run Code Online (Sandbox Code Playgroud)

要安装软件包,需要将以下部分添加到.pip/pip.conf

[global]
extra-index-url = https://myname:mypass@example.com/pypi/simple
Run Code Online (Sandbox Code Playgroud)

正如 knitti 在之前的回答中指出的那样,也可以使用 userindex-url而不是extra-index-url. 这确实意味着奶酪店不被用作第二个服务器。

要使用带有 setuptools 单元测试的专用服务器,您需要将以下内容添加到您的setup.py

from setuptools import setup

setup(
    ...
    dependency_links=[
        'https://myname:mypass@example.com/pypi/packages/'
    ])
Run Code Online (Sandbox Code Playgroud)