在 setup.py 中包含本地 tar.gz 文件

Including a local tar.gz file in setup.py

有没有办法在 setup.py 中引用 'install_requires' 中的本地 tar.gz 文件?我有一个文件,例如C:/mymodules/mydependency/mydependency.tar.gz.我应该如何将其包含在安装文件中?我试过:

setup(
name="mymodule",
version="1.0",
description="This is mymodule",
author="Me",
classifiers={
    'Development status :: 5 - Production',
    'Intended Audience :: My friends',
    'Topic :: Research tools'
    'Programming Language :: Python :: 3'
    'Programming Language :: Python :: 3.5'
    'Programming Language :: Python :: 3.6'
    'Programming Language :: Python :: 3.7'
},
packages=find_packages(),
python_requires='>=3.5, <4',
install_requires=['mymodule @ C:/mymodules/mydependency/mydependency.tar.gz', # <----
dependency_links=dependency_links,
)

但是,它声明 URL 无效: “'install_requires' 必须是包含有效 project/version 要求说明符的字符串或字符串列表;给出的 URL 无效”

我也试过在依赖链接中包含路径但没有解决问题。

我搜索了 stakcoverflow 和官方文档,但没有找到解决办法。

是否可以包含本地 tar.gz 文件作为依赖项?在那种情况下,它应该如何在安装文件中构建。

根据 PEP 440,此类直接引用需要 file:// 前缀。在那种情况下,我相信它可能如下所示:

'mymodule @ file:///C:/mymodules/mydependency/mydependency.tar.gz'

注:

据我所知,setuptools 不支持这种表示法,因为不能使用 path/to/pythonX.Y setup.py installpath/to/pythonX.Y setup.py develop 但应该使用 pip(或者可能是任何其他现代安装程序),例如:

  • path/to/pythonX.Y -m pip install path/to/project
  • path/to/pythonX.Y -m pip install --editable path/to/project