我可以從其文件夾中使用我的軟件包,但只要我將它安裝爲egg軟件包,就無法導入基於cython的模塊。軟件包無法導入雞蛋中的cython庫
我有以下封裝結構
src/
├── mypkg/
│ ├── __init__.py
│ ├── myfile.py
├── cython/
│ ├── fastcode.pyx
setup.py
模塊myfile.py
進口import fastcode
。在setup.py
,我有
setup(
name='mypkg',
version='0.1',
packages=find_packages(where="src"),
package_dir={'':'src'},
cmdclass={'build_ext': build_ext},
ext_modules=df_ext_modules,
)
我也有setup.cfg
,
[build_ext]
build-lib=src/mypkg
如果我運行python setup.py install
,在用Cython代碼獲取mypkg
文件夾中的指示編譯和創建(在Linux或fastcode.so
)fastcode.pyd
配置文件。
現在,如果我去mypkg
文件夾,並運行python
,我可以安全地做import mypkg.myfile
。 但是,當我從其他文件夾運行python(例如安裝的.egg
文件被使用)時,我得到錯誤ImportError: No module named fastcode
。
我嘗試添加
package_data={
'mypkg': ['*.pyd', '*.so']
},
到setup.py
,這增加了fastcode.pyd
蛋文件(探索解壓縮後的版本),但仍然導入不起作用。