最後(!)我編譯了Boost :: Python並獲得了我的XCode項目來導入本地模塊。該模塊與線from xml.dom import minidom
啓動,但在執行時,我給出的這個錯誤:嵌入式Python加載模塊,但不加載該模塊的內部導入語句
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "FeedStore.py", line 1, in <module>
from xml.dom import minidom
ImportError: No module named xml.dom
但是,我知道,我已經安裝了XML Python模塊 - 當我從命令提示符打開的Python並輸入from xml.dom import minidom
,一切都很順利。而且,當我導入模塊時,它的行爲與我所期望的相同。
我懷疑sys.path有問題,所以我比較了從提示符到在嵌入式模塊中使用的提示符。唯一的區別是嵌入式sys.path不包含''。我試着追加它,但這並沒有改變行爲。
我還懷疑嵌入式版本正在訪問不同於我在提示中使用的Python版本,但sys.prefix在兩次執行之間匹配。
下面是導入我的模塊並運行它的代碼。它現在相當簡單(甚至沒有引用計數),因爲在這一點上,我只想確保能夠嵌入我的模塊(我是一個全新的C++程序員)。
Py_Initialize();
//PyRun_SimpleString("import sys");
//PyRun_SimpleString("sys.path.append('')"); //tried this to no avail!
PySys_SetPath("/Users/timoooo/Documents/Code/TestEmbed/"); //this allows me to import my local module
PyRun_SimpleString("import FeedStore as fs"); //here's where it whines about the lack of xml.dom
PyRun_SimpleString("store = fs.feedStore()");
PyRun_SimpleString("print store.next()");
Py_Finalize();
我可能會誤解一些關於boost :: python的必要內容。誰能幫我嗎?