2012-12-18 82 views
21

我有一個python庫。不幸的是,我還沒有更新它與Python 3一起工作。setup.py:限制python解釋器的允許版本

在setup.py,我加

install_requires=['python<3'], 

我的意圖是不允許安裝/下蟒蛇3中使用這個包,因爲我知道它沒有(還)工作。我不認爲這是正確的做法,因爲pip然後嘗試下載並安裝python 2.7.3(它已經是安裝的版本!)。

我應該如何在特定範圍的python解釋器版本中指定我的庫依賴項?我應該添加Programming Language :: Python :: 2 :: Only標籤嗎?這實際上是否會阻止安裝在python 3下?如果我還想限制最低版本爲Python 2.6,該怎麼辦?

我更喜歡一種可以在任何地方工作的解決方案,但是會解決只能在pip中工作的解決方案(並且希望不會導致easy_install窒息)。

+0

在這裏回答: http://stackoverflow.com/questions/13385337/distribute-distutils-specify-python-version – shakefu

回答

10

由於version 9.0.1 PIP將履行新python_requires字符串,指定安裝所需的Python版本,例如:

setup(
    ..., 
    python_requires=">=3.3" 
) 

有關更多詳細信息,請參閱here。另請參閱SO上的此answer

15

一個可能的解決方案是測試的Python版本,因爲PIP不能滿足的Python版本,除了它當前正在運行的版本(但在當前的Python環境中安裝):

import sys 
if not sys.version_info[0] == 2: 
    sys.exit("Sorry, Python 3 is not supported (yet)") 

setup(... 
+2

是的,這將工作。儘管如此,在依賴關係中內置了一些東西會更好,因此pip會知道最先不會打擾下載和運行安裝程序。 – gfxmonk

+0

爲什麼不是兩個?你的答案是應該*不*做的,而是依賴於內建的特性,儘管使用這個答案*另外*到'python_requires'會很棒!你可以更新? – Mayou36

相關問題