2013-10-23 17 views
7

Obecnie ustawiamy \ instalowanie pakietów w systemie, podając ich wersję i zależności w pliku setup.py w atrybucie install_requires. Nasz system wymaga Pythona 2.7. Czasami użytkownicy mają różne wersje Pythona, mówią 2.6.x i 2.7, niektóre pakiety są już dostępne, ale faktycznie w systemie dostępnym na liście pakietów 2.6. Również niektórzy użytkownicy mają tylko 2.6, jak wymusić na setup.py lub jest jakikolwiek inny sposób powiedzenia, że ​​ma tylko python 2.7, a wszystkie pakiety, które chcemy, aby setup.py zaktualizował, są tylko 2.7. Do uruchomienia naszego kodu potrzebujemy minimum 2.7 na maszynie.Wymuszanie wersji python w setup.py

Dzięki! Santhosh

Odpowiedz

8

Jako plik setup.py jest zainstalowany poprzez pip (i sam pip prowadzony jest przez interpreter Pythona) nie jest możliwe, aby określić, która wersja Pythona użyć w pliku setup.py.

Zamiast tego spójrz na this answer na setup.py: restrict the allowable version of the python interpreter, który ma podstawowe obejście, aby zatrzymać instalację.

W twoim przypadku kod byłoby:

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

version_info nie wprowadził nazwanych komponentów do wersji 2.7+, to tylko krotka. Przesłano zmianę. – 2upmedia

+3

Dlaczego nie możesz po prostu zrobić 'if sys.version_info <(2,7)'? Python porównuje krotki w porządku leksykalnym, więc to zadziała dobrze dla, powiedzmy, '(3,4,1)'. –

2

Obecny najlepszą praktyką (jak to pisze w marcu 2018 roku) znajduje się dodać python_requires argumentu bezpośrednio na wezwanie setup() w setup.py:

from setuptools import setup 

[...] 

setup(name="my_package_name", 
     python_requires='>3.5.2', 
     [...] 
Powiązane problemy