Включение локального файла tar.gz в setup.py - PullRequest
1 голос
/ 07 мая 2020

Есть ли способ ссылаться на локальные файлы tar.gz в 'install_requires' в setup.py? У меня есть файл, например, 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 в качестве зависимости? И в таком случае, как это должно быть структурировано в установочном файле.

1 Ответ

1 голос
/ 07 мая 2020

Согласно PEP 440 , такие прямые ссылки требуют префикса file://. В этом случае я считаю, что это могло бы выглядеть следующим образом:

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

Примечание:

Насколько мне известно, это обозначение не поддерживается setuptools , в том смысле, что нельзя использовать path/to/pythonX.Y setup.py install или path/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
...