Python cualquiera de muchas dependencias

De vez en cuando me encuentro con una situación en la que tengo un paquete que puede depender de cualquiera de los paquetes A o B.

Por ejemplo, mi proyecto depende de un paquete llamado spam , si este proyecto cambia de nombre a pyspam , mi proyecto puede depender de spam o pyspam .

No puedo entender (o encontrar) cómo definiría tales dependencias en setup.py. ¿Cuál es una forma comúnmente aceptada para resolver esto?

EDITAR: Me gustaría definir las dependencias en setup.py . Algo como esto:

 from setuptools import setup setup( name='myproject', install_requires=[ 'spam || pyspam' ] ) 

Puede verificar si el paquete está disponible y decidir cuál usar basándose en eso. (Espero haber entendido tu pregunta correctamente).

 from setuptools import setup imp_spam = "spam" try: import spam except: imp_spam = "pyspam" setup( name='myproject', install_requires=[imp_spam] ) 
 try: import ham except ImportError: import spam