Ich versuche, ein python2-Paket mit sechs auf python3 (nicht mein eigenes) zu portieren, damit es mit beiden kompatibel ist. Eines der in require.txt aufgelisteten Pakete ist jetzt in der python3 stdlib enthalten, und die pypi-Version funktioniert in python3 nicht, daher möchte ich es bedingt ausschließen. Dies in setup.py zu tun ist einfach, ich kann einfach so etwas tun wie:
if sys.version_info[0] == 2:
requirements += py2_requirements
else:
requirements += py3_requirements
Ich möchte aber auch, dass die Datei require.txt auch die richtige Liste widerspiegelt. Ich kann dazu nichts in der Pip-Dokumentation finden. Weiß jemand, wie es geht oder ob es überhaupt möglich ist?
Antworten:
Sie können die Umgebungsmarkierungen verwenden , um dies zu erreichen,
requirements.txt
dapip 6.0
:Es wird auch von setuptools unterstützt, indem zusätzliche Anforderungen deklariert werden in
setup.py
:Siehe auch Anforderungsspezifizierer . Und Strings für die String-Versionen der entsprechenden Python-Befehle.
quelle
sys.platform == "win32"
? Ich habe versucht, zu verwenden:sys.platform == "win32"
, aber ich erhalte einen Fehler "Ungültige Umgebungsmarkierung" von dersetup()
FunktionSie können mehrere Anforderungsdateien erstellen, diese allgemeinen Pakete in einer gemeinsamen Datei ablegen und sie in eine andere Pip-Anforderungsdatei mit aufnehmen
-r file_path
python2.txt:
python3.txt:
pip install -r Anforderungen / python2.txt
quelle