2009-03-01 9 views
1

我正試圖在Google App Engine上安裝一個軟件包。該軟件包相當依賴pkg_resources,但無法在App Engine上運行setup.py如何手動向pkg_resources註冊發行版?

但是,源代碼中沒有特定於平臺的代碼,因此將源代碼壓縮並將其包含在系統路徑中是沒有問題的。我已經安裝並運行了pkg_resources版本。

唯一的問題是與pkg_resources實際上註冊得到包,以便當它調用iter_entry_points它可以找到相應的插件。

我需要使用哪些方法來調用sys.path上的模塊以及所有適當的元數據,以及如何確定元數據需要的內容?

回答

0

與正常情況一樣爲包創建setup.py,然後使用「setup.py sdist --formats = zip」來構建源zip。內置的源zip將包含一個.egg-info元數據目錄,然後可以通過pkg_resources找到它。或者,您可以使用bdist_egg作爲您的所有包。

1

是的,對於基於setuptools的庫,您需要將庫的「蛋」元數據與它一起部署。我發現的最簡單的方法是部署包含您的項目和所需庫的整個virtualenv環境。

我手動做這個過程並添加該代碼在main.py來初始化的方式站點包文件夾pkg_resources將工作:

import site 
site.addsitedir('lib/python2.5/site-packages') 

但是,你可以嘗試appengine-monkey它會自動極本爲你。

0

在您的本地開發系統上,運行python setup.py bdist_egg,它將創建一個包含必要元數據的Zip存檔。將它添加到你的sys.path,它應該正常工作。