0

ついに(!)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について何か重要なことを誤解しています。誰かが私を助けることができますか?

4

1 に答える 1

1

同一の sys.path 値を持っているにもかかわらず、 PyRun_SimpleString("sys.path.append(\"<<path>>\")"); 必要な場所で呼び出すと問題が解決しました。

于 2011-04-07T02:19:12.580 に答える