【问题标题】:Including a local tar.gz file in setup.py在 setup.py 中包含本地 tar.gz 文件
【发布时间】:2020-05-07 09:10:54
【问题描述】:

有没有办法在 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' 必须是包含有效项目/版本要求说明符的字符串或字符串列表;给出的 URL 无效"

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

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

是否可以包含一个 localt tar.gz 文件作为依赖项?在那种情况下,它应该如何在设置文件中构建。

【问题讨论】:

  • 我认为您可能需要添加 file:// 前缀。所以也许'mymodule @ file:///C:/mymodules/mydependency/mydependency.tar.gz':python.org/dev/peps/pep-0440/#direct-references
  • 我刚刚尝试过,但它仍然给出错误:“Invalid URL given”。但是,根据您提供的来源,您的建议似乎是正确的,也许我最终做错了,但感谢您的回复。
  • 另外一件事:不要使用path/to/pythonX.Y setup.py installpath/to/pythonX.Y setup.py develop,而应使用path/to/pythonX.Y -m pip install path/to/projectpath/to/pythonX.Y -m pip install --editable path/to/project
  • 我发现它有效 - 文件后面有一个“/”:。谢谢你的帮助。如果您将其发布为答案,我将对其进行标记并给予支持。

标签: python-3.x setup.py


【解决方案1】:

根据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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多