2013-05-01 45 views
1

我有一個__main__.py一個zip文件執行罰款:./myappPython可執行拉鍊與C擴展

但這拉鍊裏面,有一個C擴展library.so文件必須加載,但這個庫.so文件未找到。

如果我執行目錄(沒有壓縮它),它會正確執行。所以看起來C擴展不受支持或者是一些配置問題。有任何想法嗎?

http://www.python.org/dev/peps/pep-0441/

+0

在Google中很難找到的一個非常簡單的問題對於StackOverFlow來說應該是完美的。人們無緣無故地停止低價投票會很好。這樣做後至少給一些有用的評論。 – 2013-05-15 17:57:34

回答

2

C擴展不能從.zip庫加載。這是Python控制之外的限制。

這已經應用到zipimport support

任何文件可能存在於ZIP壓縮文件,但只有文件的.py和的.py [合作]可供導入。動態模塊(.pyd,.so)的ZIP導入是不允許的。

+1

你知道這是否有任何解決方法嗎?我正在考慮將.SO文件放在特定的目錄中,然後嘗試使用pkg_resources加載它們。 – 2013-05-01 18:46:56

+0

你將不得不把它們放在一個單獨的目錄中,它被添加到'sys.path'中。也許你可以在'__main__'模塊運行時將它們提取到臨時目錄中? – 2013-05-01 22:23:43