Как установить git + https: // из setup.py с помощью install_requires - PullRequest
1 голос
/ 26 февраля 2020

У меня есть проект, в котором я должен установить с git + https:

Я могу заставить его работать следующим образом:

virtualenv -p python3.5 bla
. bla/bin/activate
pip install numpy # must have numpy before the following pkg...
pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

Однако я хочу использовать его в файле setup.py в install_requires:

from setuptools import setup
setup(install_requires='git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI', setup_requires='numpy')

, а затем pip install -e . из каталога, содержащего setup.py

Это не работает из-за ошибки разбора:

    Complete output (1 lines):                                                                                                             
    error in bla_bla setup command: 'install_requires' must be a string or list of strings containing valid project/version requireme
nt specifiers; Invalid requirement, parse error at "'+https:/'"                                                                             
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.  

Ошибка не возникает, если я устанавливаю с использованием pip install -r requires.txt (при условии, что в этом файле есть та же строка), а не при использовании прямого pip install git+... ...

Как исправить эту ошибку синтаксического анализа?

Что я пробовал до сих пор:

  1. , оборачивая строку с помощью "/" "" / '/' ''
  2. добавив 'r' перед строкой

1 Ответ

3 голосов
/ 26 февраля 2020

install_requires должна быть строкой или списком строк с именами и необязательными URL-адресами, для получения пакета из которых:

install_requires=[
    'pycocotools @ git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
]

См. https://pip.readthedocs.io/en/stable/reference/pip_install/#requirement -спецификаторы и https://www.python.org/dev/peps/pep-0440/#direct -references

Это требует pip install, включая pip install . и не работает с python setup.py install.

...