2013-10-23 52 views
7

目前,我們正在通過在install_requires屬性下在setup.py中提及它們的版本和依賴項來設置\在系統上安裝某些軟件包。我們的系統需要python 2.7。有時候,用戶有多個版本的Python,比如2.6.x和2.7,它說的一些軟件包已經可用,但實際上在2.6站點軟件包列表下的系統上。另外一些用戶只有2.6,如何從setup.py執行,或者是否有其他方式說只有python 2.7,我們希望setup.py更新的所有包只有2.7。我們在機器上至少需要2.7來運行我們的代碼。在setup.py中執行python版本

謝謝! Santhosh

回答

8

由於通過pip(和pip本身由Python解釋器中運行)安裝setup.py文件,不可能指定在setup.py文件要使用的Python版本。

取而代之的是看看this answersetup.py: restrict the allowable version of the python interpreter它有一個基本的解決方法來停止安裝。

在你的情況下,代碼是:

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

version_info直到2.7+才引入命名組件,它只是一個元組。提交了一個編輯。 – 2upmedia

+3

爲什麼你不能簡單地'如果sys.version_info <(2,7)'? Python按照詞彙順序比較元組,所以這對於((3,4,1)')來說可以正常工作。 –

2

當前最佳實踐(寫這篇文章在2018年3月)是直接在setup.py添加python_requires參數的setup()電話:

from setuptools import setup 

[...] 

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