Наконец-то (!) Я скомпилировал Boost :: Python и получил свой проект XCode для импорта локального модуля. Этот модуль начинается со строки from xml.dom import minidom
, но когда он выполняется, мне выдается эта ошибка:
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. Кто-нибудь может мне помочь?