我想寫我的第一個python模塊,可以很容易地分佈和安裝在不同的機器上(希望通過克隆存儲庫並運行setup.py)。問題是我的模塊依賴於一個小的二進制文件;我使用Selenium模塊作爲我的依賴項之一,它需要Chrome瀏覽器的驅動程序(http://chromedriver.storage.googleapis.com/index.html?path=2.22/)。在python模塊中包含一個二進制文件,這是不是很好的做法?
我想要做的是在我的回購中包含不同的二進制文件,讓python確定系統平臺,選擇正確的二進制文件,將其添加到系統路徑,然後像平常一樣安裝模塊。
這很容易嗎?更重要的是,這實際上是一種好的做法還是有更好的選擇?這似乎是一個非常惱人的事情,必須單獨下載二進制文件,並將其添加到每臺機器的系統路徑,我想運行我的模塊,但我寧願不違背慣例。
你的二進制文件是特定於解釋器的,並且在模塊中包含任何二進制文件都不是一個好主意 - 相反,你的egg和setup.py應該完成版本,依賴項和複製文件的工作。 http://stackoverflow.com/questions/2026395/how-to-create-python-egg-file – dmitryro
感謝您的迴應德米特羅!所以如果我理解你的話,我的setup.py文件應該確定需要哪個文件並直接下載它,而不是在源文件中包含所有的二進制文件以開始?我真的不知道該怎麼去做... –
是的。您將提供它們的列表和它們的版本,它們將被複制 - 請參閱https://pythonhosted.org/an_example_pypi_project/setuptools.html – dmitryro