2011-10-10 108 views
3

我有一個python項目,依賴於另一個項目,依靠python-dateutil。當我嘗試python setup.py install我的項目時,它解決了dateutil依賴關係到python-dateutil 2.0,python 2.x根本無法工作。我發現修復這個問題並使我的項目可以安裝的唯一方法是讓我的項目直接依賴於python-dateutil<2,即使它的依賴關係沒有直接使用dateutil。python項目可以依賴於特定版本的python嗎?

它看起來像distutils2/PEP 345有一個Requires-Python字段來指定哪些版本的Python項目是兼容的。

  1. 是distutils2指定此信息爲您的項目的唯一途徑,而
  2. 將PyPI中或類似的東西能夠利用這些信息,所以,如果我的蟒蛇2安裝項目。 x,那麼依賴解析會忽略python-dateutil 2?

回答

1

我有使用python-dateutil這個相同的問題。它的作者有some discussion of the problem,但沒有真正的解決方案。 version listed on pypi爲1.5,但pipeasy_install都會從pypi列表中下載主頁並獲取其中列出的2.0版本(python3)。

distutils2中可能有些東西可以解決它,但這意味着python-dateutil和您的第三方庫都必須更新其分發元數據以包含/使用此「Requires-Python」信息。

我認爲你最好的選擇是做你已經做的事情,並確保你的項目直接依賴它。

+0

對,解決方法並不那麼糟糕,我只知道這個問題是否是python的包裝實踐特有的... –

+0

我不這麼認爲。 python-dateutil是我見過的唯一的一個軟件包,我使用了大量的軟件包,它們可以很好地支持python 2和3(sqlalchemy,jinja2,pip等) –

相關問題