![](/img/trans.png)
[英]PyInstaller: ModuleNotFoundError: No module named 'encodings'
[英]python embedding on Mac ModuleNotFoundError: No module named 'encodings'
我目前無法使用Cython嵌入功能。 二進制文件編譯良好,並且otool -L embedded
返回以下結果。
embedded:
@rpath/libpython3.6m.dylib (compatibility version 3.6.0, current version 3.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.60.2)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1349.8.0)
這是我運行的命令。 有什么想法為什么這不起作用? 當我想創建一個Cython模塊時,使用setup.py的Cython可以很好地工作,即,我能夠在Python中導入Cython模塊。
$ make
gcc -c embedded.c -I/Users/$USER/miniconda3/include/python3.6m -I/Users/$USER/miniconda3/include/python3.6m
gcc -o embedded embedded.o -L/Users/$USER/miniconda3/lib -L/Users/$USER/miniconda3/lib/python3.6/config-3.6m-darwin -lpython3.6m -ldl -framework CoreFoundation -Wl,-stack_size,1000000 -framework CoreFoundation
$ ./embedded
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x000000010f8113c0 (most recent call first):
[1] 32931 abort ./embedded
建議?
您基本上是在嘗試將Python本機代碼擴展作為獨立的二進制文件運行而沒有Python解釋器。 這將永遠行不通。
Cython擴展代碼生成Python解釋器的擴展。
它們是共享模塊,只能在運行的Python解釋器中加載。 它們不能用作獨立的二進制文件。
如果要制作和分發帶有或不帶有擴展名的獨立Python代碼二進制文件,則解釋器將與代碼捆綁在一起-請參閱cx_freeze 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.