![](/img/trans.png)
[英]gcc 6.3 --> Fatal Python error: Py_Initialize: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings'
[英]Py_Initialize throws ModuleNotFoundError: No module named 'encodings'
我正在嘗試在MacOS上的https://docs.python.org/3/extending/embedding.html#very-high-level-embedding上運行“在另一個應用程序中嵌入Python”示例。 雖然我可以使程序與我的Python3.7和SCons的Anaconda發行版一起編譯,但是運行該程序始終會引發以下錯誤:
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: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
我已嘗試過此StackOverflow帖子中提供的建議, 如何通過將PYTHONHOME變量設置為/ usr / local,Anaconda根目錄以及該目錄的父目錄來解決Python“找不到與平台無關的庫<prefix>”的問題。 Python可執行文件。 我也嘗試將PYTHONPATH變量設置為每個文件夾。 但是,設置PYTHONHOME將導致我的Anaconda安裝Python崩潰,並顯示以下消息:
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
我沒有設置任何Python虛擬環境,並且在此嵌入示例之外並設置了PYTHONHOME變量,Python運行良好。 另外,Anaconda Python二進制文件的父文件夾是PATH變量中的第一個文件夾,因此我知道Py_Initialize不會首先找到Python的默認MacOS安裝。 我嘗試卸載並重新安裝Anaconda,但仍然存在相同的錯誤。 以下代碼是我的SConstruct文件,用於編譯示例。
env = Environment(
CPPPATH=[
"/Users/user/anaconda3/include",
"/Users/user/anaconda3/include/python3.7m"
],
LIBPATH=["/Users/user/anaconda3/lib/python3.7/config-3.7m-darwin"],
LIBS=["dl", "python3.7m"]
)
env.Program("wrapper", "wrapper.c")
任何幫助或建議,不勝感激。 謝謝。
這將取決於如何設置python庫。 我假設他們正在使用RPATH,在這種情況下,您可以使您的環境像這樣:
env = Environment(
CPPPATH=[
"/Users/user/anaconda3/include",
"/Users/user/anaconda3/include/python3.7m"
],
LIBPATH=["/Users/user/anaconda3/lib/python3.7/config-3.7m-darwin"],
LIBS=["dl", "python3.7m"],
LINKFLAGS='-rpath /Users/user/anaconda3/lib/python3.7/config-3.7m-darwin'
)
env.Program("wrapper", "wrapper.c")
在該config文件夾中應該有一些動態庫,您可以在以下庫上運行otool:
otool -L libpython3.7.dylib
哪個應該打印鏈接器如何鏈接庫。
您可以在這里找到更多信息:
https://stackoverflow.com/a/31824839/1644736 https://wincent.com/wiki/@executable_path,_@load_path_and_@rpath
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.