Я пытаюсь запустить:
pip3 install -e .
в моем проекте Python, где у меня есть следующее setup.py
:
from setuptools import setup
setup(
name='mypackage',
install_requires=[
"anotherpackage@git+git@bitbucket.org:myorg/anotherpackage.git"
]
)
но это не с:
error in mypackage setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid URL given
Полагаю, формат моего URL верен, поскольку PEP 508 не позволяет указывать имя пользователя git для URL-адресов клонов ssh.
Каков правильный синтаксис для URL-адресов PEP 508 с протоколом git + ssh для зависимости install_requires
для частных репозиториев git (в данном случае размещенных на BitBucket)? Каков синтаксис для указания конкретной ветви, тега или ша?
Больше контекста, чтобы избежать проблемы XY
У меня есть внутренний проект Python, который зависит от нескольких внутренних пакетов Python. Я хотел бы избежать необходимости размещать свой собственный PIP-репозиторий в организации, и поэтому я пытаюсь использовать URL-адреса git напрямую. Мне нужно использовать протокол ssh для URL-адресов git, поскольку у всех пользователей настроены ключи ssh, и было бы неудобно просить всех пользователей настраивать пароли своих приложений в BitBuckets (у меня требуется 2FA, а пароль обычного пользователя не работает) .
Я уже пытался использовать:
dependency_links
setup(
name='mypackage',
install_requires=[
"anotherpackage==0.0.1"
],
dependency_links=[
"git+git@bitbucket.org:myorg/anotherpackage.git@0.0.1#egg=anotherpackage-0.0.1"
]
)
Но они устарели и игнорируются pip3 install -e .
. Согласно документации, которую я нашел, вместо этого следует использовать URL-адреса PEP 508.
requirements.txt
файл с дублирующимися записями из install_requires
записей
У меня есть requirements.txt
файл с:
-e git+git@bitbucket.org:myorg/anotherpackage.git@0.0.1#egg=anotherpackage
и я использую pip3 install -r requirements.txt
вместо pip3 install -e .
. Это работает, но неоптимально, так как мне нужно синхронизировать setyp.py
и requirements.txt
.
Если есть другое рекомендуемое решение для моей проблемы, я хотел бы узнать об этом:)