od czasu do czasu natknąć sytuacji gdzie mam pakiet, który może zależeć od każdej paczki A lub B.Python któregokolwiek z wieloma zależnościami
Na przykład, mój projekt zależy od pakietu zwanego spam
, jeśli to nazwa projektu została zmieniona na pyspam
, mój projekt może być zależny od spam
lub pyspam
.
Nie mogę znaleźć (lub znaleźć) sposobu zdefiniowania takich zależności w pliku setup.py. Jaki jest powszechnie akceptowany sposób rozwiązania tego problemu?
EDYCJA: Chciałbym zdefiniować zależności w setup.py
. Coś takiego:
from setuptools import setup
setup(
name='myproject',
install_requires=[
'spam || pyspam'
]
)
Nie dokładnie to, czego szukam. Jeśli żaden pakiet nie jest zainstalowany, 'pyspam' jest zainstalowany w twoim przykładzie. Niestety nie ma obsługi scenariuszy, w których którykolwiek pakiet może nie istnieć (zdalnie). W takim przypadku zależność może służyć jako zabezpieczenie. Ta odpowiedź prawdopodobnie będzie działać w większości przypadków, więc +1. – siebz0r
Cóż, musisz zdefiniować jeden z nich jako preferowany, prawda? Wystarczy odwrócić kolejność, aby druga była preferowana, na wypadek, gdyby oba zostały pominięte. – bosnjak
Jeśli pakiet nie (jeszcze) istnieje na serwerze pypi, instalacja nie powiedzie się. Zamiast tego powinien spróbować pobrać inny pakiet, ponieważ również spełnia zależność. – siebz0r