2017-10-11 76 views
0

我有一個可用於Python 2.4-2.7的包。 3.2-3.7。 請注意,這並非針對所有Python 2或Python 3,而是特定版本。如何爲一組特定的Python版本創建一個Python輪? py2.py3-none-any.whl太寬了

它也發生這個包支持Python 2.4和2.5與不同的源代碼。

我一直在爲每個版本分發雞蛋,因爲這是非常具體的,我setup.py bdist_wheel創造了太多的東西,以匹配我不想匹配的Python版本。

當我創建一個輪子時,我會擴展py2.py3-non-any.whl這是錯誤的Python 2.4和2.5。 (tarball也是如此)。

PyPi將只允許一個tarball,所以現在我使用非2.4,2.5源代碼。如果能夠包含2.4 2.5源代碼將會很好。嗯,也許我可以做到這一點拉鍊? (可能不會)。

如何通知setup.py我只需要一個py35-non-any.whl?或者py2指定爲2.6或2.7?而py3只有3.2和更高。

或者更普遍的是什麼是一種簡單的方法來設置事件,使得無論使用何種python版本運行,pip都會選擇正確的pypi文件?

+0

爲什麼你甚至試圖首先支持13歲的Python版本? – jwodder

+0

爲什麼不呢?代碼的目標是處理任何版本的Python字節碼。因此,代碼可以在任何版本上運行也很方便。順便說一句,在Python社區,當有些事情很難做,或者Python不能很好地支持,或者它的工具和思維缺乏時,而不是承認它很難,或者Python或者它的工具或者思維是有缺陷的,說,「你不應該這樣做」。 – rocky

+0

因爲當一個問題確實很難時,在SO上問這個問題是毫無意義的。相反,您應該自己找到解決方案,在GH上發佈代碼並在博客文章中描述解決方案。 – phd

回答

0

當您運行setup.py bdist_wheel並且它創建了一些過於籠統的東西時,以下是一些簡單的想法:只需重命名該文件即可。

我在Pypi的一個發行版上試過這個,它的工作原理是:輪子比tarball更受歡迎,並且它爲該版本拉下了輪子。 隨後運行該程序。

在我的具體情況下,setup.py bdist_wheel創建foo-1.2.3-py2.py3-none-any.whl但這是錯誤的,因爲不希望所有版本的Python 2和Python 3,但一些非常具體的版本。

但是,例如,如果我想這個調整隻工作在Python 2.7版和Python 3.6,我重命名/複製到:

foo-1.2.3-py27-none-any.whl 
foo-1.2.3-py36-none-any.whl 

可能有其他的想法和意見就如何完成,所以我把這個打開。如果這確實是最簡單的事情,那麼如果在setup.py中有一個選項,或者它處理的是bdist_wheel,那麼它可能會很好,因此它會爲你重命名。

命名約定中允許範圍,以便可以指定說3.5-3.7?或者可以以某種方式給出像py25.py26.py27這樣的列表?

相關問題