2015-11-06 49 views
1

我的軟件包依賴於名爲progressbar的軟件包。有一個bug in progressbar 2.3在Python> 3.3中導致安裝失敗,因此我將latest git repo from this fork安裝在一個自稱爲2.3.dev0的版本中。但是,當我使用progressbar依賴項安裝我的軟件包時,它會嘗試安裝版本2.3,其中fails due to the bug。這是我在我的`setup.py':當progressbar-2.3.dev0已安裝時,setuptools嘗試(並失敗)安裝progressbar-2.3。如何正確制定要求?

setup(
    name = "pyatmlab", 
    author = "Gerrit Holl", 
    author_email = "[email protected]", 
# (...) 
    install_requires=["numpy>=1.10", "scipy>=0.16", "pyproj>=1.9", 
         "statsmodels>=0.6", "pytz>=2015.4", "progressbar>=2.3", 
         "matplotlib>=1.4"], 
# (...) 
) 

我能在install_requires修復從試圖從降級到progressbar-2.3.dev0停止progressbar-2.3setuptools?即使當我將要求更改爲progressbar>=2.3.dev0時,pip install --upgrade仍會嘗試降級至progressbar-2.3

+0

我的解決方法是完全取消註釋要求,但當然這是不可取的,因爲這會導致運行時出現故障。 – gerrit

+0

如果你編寫'progressbar> 2.3',會發生什麼? – cel

+0

您安裝的回購網址是什麼? – MattDMo

回答

1

在當地的回購協議的副本,編輯progressbar/__init__.py並更改以下行:

__version__ = '2.3dev' 

__version__ = '2.3.1' 

保存文件,然後重新安裝pip。當然,如果沒有拉取請求,這隻會在本地爲您工作。


另一種選擇是使用更先進的最新progressbar2,Github上here。它已經過驗證,可用於Python 3.5。顯然,你必須測試你的代碼,以確保它能與新版本一起工作,但這可能是你最好的選擇。

+0

我不知道'progressbar2'。感謝指針!除此之外,我想你的答案可能是唯一有效的方法,即使它不是最理想的解決方案。我將等待接受查看是否有人想出了一個不需要更改版本號的解決方案(在這種情況下,我將遷移到'progressbar2',但是'setuptools'的問題可能會誤解其他標籤版本情況也是如此)。 – gerrit