У меня есть пакет, который я отправляю в PyPi, и некоторые зависимости - это не пакеты, а устанавливаемые git-репозитории.Мой requirements.txt
выглядит следующим образом
sphinx_bootstrap_theme>=0.6.5
matplotlib>=2.2.0
numpy>=1.15.0
sphinx>=1.7.5
sphinx-argparse>=0.2.2
tensorboardX
tqdm>=4.24.0
Cython>=0.28.5
# git repos
git+git://github.com/themightyoarfish/svcca-gpu.git
Соответственно, мой setup.py
имеет следующее содержимое:
#!/usr/bin/env python
from distutils.core import setup
import setuptools
import os
with open('requirements.txt', mode='r') as f:
requirements = f.read()
required_pkgs, required_repos = requirements.split('# git repos')
required_pkgs = required_pkgs.split()
required_repos = required_repos.split()
with open('README.md') as f:
readme = f.read()
setup(name=...
...
packages=setuptools.find_packages('.', include=[...]),
install_requires=required_pkgs,
dependency_links=required_repos,
zip_safe=False, # don't install egg, but source
)
Но запуск pip install <package>
фактически не устанавливает зависимость git.Я предполагаю, что pip
на самом деле не использует сценарий установки.Это работает, когда я запускаю python setup.py install
вручную.
Редактировать :
Я также пытался удалить dependency_links
и просто использовать install_requires
с хранилищем, но при установкемой репозиторий от GitHub (проект, включающий в себя вышеуказанные файлы), я встречался с
Complete output from command python setup.py egg_info:
error in ikkuna setup command: 'install_requires' must be a string or
list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'+git://g'"
В других ответах было предложено, что можно поместить что-то вроде
git+https://github.com/themightyoarfish/svcca-gpu.git#egg=svcca
вrequirements.txt
, но это не работает с
error in <pkg> setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'+https:/'
Вопрос: (Как) Могу ли я перечислить git-репозитории как зависимости для пакета pip?