2013-10-23 4 views
7

Momentan setzen wir einige Pakete auf dem System, indem wir deren Version und Abhängigkeiten in setup.py unter dem Attribut install_requires angeben. Unser System benötigt Python 2.7. Manchmal haben Benutzer mehrere Versionen von Python sagen 2.6.x und 2.7, einige Pakete, die es sagt, sind bereits verfügbar, aber tatsächlich auf dem System unter 2.6 Website-Pakete Liste. Auch einige Benutzer haben nur 2.6, wie man von setup.py erzwingt oder gibt es eine andere Möglichkeit zu sagen, nur python 2.7 zu haben und alle Pakete, die setup.py updaten soll, sind nur für 2.7. Wir benötigen mindestens 2,7 auf der Maschine, um unseren Code auszuführen.Erzwingen der Python-Version in setup.py

Danke! Santhosh

Antwort

8

Da die setup.py-Datei installiert wird über pip (und pip sich vom Python-Interpreter ausgeführt wird), ist es nicht möglich, die Python-Version verwenden in der setup.py-Datei angeben.

Betrachten Sie stattdessen this answer zu setup.py: restrict the allowable version of the python interpreter, die eine grundlegende Problemumgehung hat, um die Installation zu beenden.

In Ihrem Fall würde der Code:

import sys 
if sys.version_info < (2,7): 
    sys.exit('Sorry, Python < 2.7 is not supported') 
+0

version_info führte keine benannten Komponenten bis 2.7+ ein, es ist nur ein Tupel. Übermittelt eine Änderung. – 2upmedia

+3

Warum können Sie nicht einfach 'if sys.version_info <(2,7)'? Python vergleicht Tupel in lexikalischer Reihenfolge, so dass dies beispielsweise für '(3,4,1)' funktioniert. –

2

Die derzeit besten Verfahren (zum Zeitpunkt des Schreibens März 2018) ist ein python_requires Argument direkt an den setup() Aufruf in setup.py hinzuzufügen:

from setuptools import setup 

[...] 

setup(name="my_package_name", 
     python_requires='>3.5.2', 
     [...] 
Verwandte Themen