Powiedz, że chcę zainstalować pyodbc
. Nie można go zbudować na niektórych komputerach z systemem Windows, ale istnieje alternatywa - pypyodbc
, która jest czystą implementacją Pythona pyobdc
.Alternatywne zależności (fallback) w pliku setup.py
Czy istnieje sposób określenia install_requires=["pyobdc"]
dla setuptools.setup
z powrotem do pypyodbc
, jeśli poprzedni pakiet nie został zainstalowany?
UPD: Moje rozwiązanie dla tej konkretnej sytuacji:
import sys
from setuptools import setup
if sys.platform.startswith("win"):
pyodbc = "pypyodbc>=1.2.0"
else:
pyodbc = "pyodbc>=3.0.7"
...
setup(
...
install_requires=[pyobdc]
)
Ale nadal wyglądają na bardziej ogólne rozwiązanie.
widzę nic złego w swoim podejściu. To wygląda prawidłowo zgodnie z dokumentami. https://pythonhosted.org/setuptools/setuptools.html#declaring-dependencies – rh0dium