Di tanto in tanto mi imbatto in un situazione in cui ho un pacchetto che può dipendere sia pacchetto A o B.Python una delle molte dipendenze
Per esempio, il mio progetto dipende da un pacchetto chiamato spam
, se questo progetto è stato rinominato in pyspam
, il mio progetto può dipendere da spam
o pyspam
.
Non riesco a capire (o trovare) come definirei tali dipendenze in setup.py. Qual è un modo comunemente accettato per risolvere questo?
MODIFICA: Vorrei definire le dipendenze in setup.py
. Qualcosa di simile a questo:
from setuptools import setup
setup(
name='myproject',
install_requires=[
'spam || pyspam'
]
)
Non esattamente quello che sto cercando. Se nessun pacchetto è installato, nel tuo esempio è installato 'pyspam'. Sfortunatamente non vi è alcuna gestione degli scenari in cui entrambi i pacchetti potrebbero non esistere (da remoto). In tal caso, una dipendenza può servire da ripiego. Questa risposta probabilmente funzionerà nella maggior parte dei casi, quindi +1. – siebz0r
Beh, devi definirne uno preferito, giusto? Basta invertire l'ordine per rendere l'altro preferito nel caso in cui entrambi mancano. – bosnjak
Se un pacchetto non esiste (ancora) su un server Pypi, l'installazione non riesce. Invece dovrebbe provare a recuperare l'altro pacchetto in quanto soddisfa anche la dipendenza. – siebz0r