从私人pypiserver安装python包

时间:2014-02-26 20:15:37

标签: 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

为了使其更加困难,服务器当前正在使用未经验证的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'])

2 个答案:

答案 0 :(得分: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

关于pip.conf的一些文档here和pypiserver here

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

答案 1 :(得分:2)

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

[distutils]
index-servers = example

[example]
repository = https://example.com/pypi
username = myname
password = mypass

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

[global]
extra-index-url = https://myname:mypass@example.com/pypi/simple

正如knitti在之前的回答中指出的那样,也可以使用index-url代替extra-index-url。这意味着奶酪店不会被用作第二台服务器。

要使用具有setuptools unittesting的私人服务器,您需要将以下内容添加到setup.py

from setuptools import setup

setup(
    ...
    dependency_links=[
        'https://myname:mypass@example.com/pypi/packages/'
    ])