将自定义转轮文件添加为setup.py中的依赖项?

Jus*_*tin 5 python pip setuptools

我正在一个项目中,其中一个依赖项实际上是一个.whl不在pypi 上的依赖项(即,我必须直接从作者那里下载轮并直接pip安装它)。在我的setup.py文件中,有没有办法做类似的事情:

install_requires=[
    'library.whl',
    'matplotlib==2.2.2',
    'numpy==1.14.2',
    'opencv-python==3.4.0.12',
    'Pillow==5.1.0',
    'PyYAML==3.12',
],
Run Code Online (Sandbox Code Playgroud)

还是沿着这些路线,因为它不在pypi上(我只是将其添加library.whlMANIFEST.in文件中?)?如果没有,是否有针对这种情况的推荐方法?理想情况下,我想在setup.py文件中解决此问题,这样我就可以轻松安装一个库pip install

Lau*_*RTE 2

一种替代方法是使用pip要求文件来安装依赖项。需求文件指定每个库和所需的版本。您可以使用 URL 来指向您的方向盘。

\n\n

例子:

\n\n
http://host/path/to/library.whl\nmatplotlib==2.2.2\nnumpy==1.14.2\nopencv-python==3.4.0.12\nPillow==5.1.0\nPyYAML==3.12\n
Run Code Online (Sandbox Code Playgroud)\n\n

只需将 \xe2\x80\x98library\xe2\x80\x99 指定到您的setup.py文件即可。

\n\n

编辑

\n\n

最佳实践是拥有一个额外的 PyPi 服务器,例如DevPi。并更改您的 pip配置文件以添加此存储库。当然你library.whl必须被推送到这个私人服务器中。

\n\n

示例pip.conf

\n\n
[global]\nindex-url = http://yourserver/group/user/\n\n[install]\ntrusted-host = yourserver\n\n[download]\ntrusted-host = yourserver\n\n[list]\nformat = columns\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可能还需要配置您的.pypirc文件:

\n\n
[distutils]\nindex-servers = pypi\n                private\n\n[pypi]\nrepository: http://pypi.python.org/pypi\nusername:your-username\npassword:your-password\n\n[private]\nrepository: http://yourserver\nusername:your-login\npassword:your-password\n
Run Code Online (Sandbox Code Playgroud)\n\n

这样你就可以将你的版本推送到你的私人服务器上:

\n\n
python setup.py bdist_wheel upload -r private register -r private\n
Run Code Online (Sandbox Code Playgroud)\n