3

iOS の埋め込み Python の初期化でスタックします。Kivy プロジェクトからビルド スクリプトを取得しました。libpython2.7.a、Python27.zip を生成し、インクルードします。

したがって、私のアプリは zip を /Documents/lib/python2.7 に解凍します

Python をセットアップしようとしています:

dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                               NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
Py_SetPythonHome((char *)[docsDir UTF8String]);
Py_SetProgramName("");
Py_Initialize();

にあたる:

ImportError: No module named site

私が理解しているように、Python ホーム パスが見つかりません。しかし、次の方法でサイトを修正すると:

Py_NoSiteFlag=1;
PyRun_SimpleString("import sys as s\nprint(s.path)");

有効なパスを出力します。

['/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python27.zip', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/plat-darwin', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/plat-mac', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/plat-mac/lib-scriptpackages', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/lib-tk', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/lib-old', '/var/mobile/Applications/1BC015FC-2F7A-41C0-8F3A-70A22510C3A3/Documents/lib/python2.7/lib-dynload']

しかし、誰もインポートできません。モジュールで Python を正しく動作させるには、何を修正する必要がありますか?

4

1 に答える 1

4

すでに自分で修正しました。私の間違いは次のとおりです。-すべてのpython/libファイルをディレクトリ(グループではなく)としてベースプログラムファイルに配置する必要があります-ビルドフェーズでこのディレクトリを追加します「リソースのアップロード」リスト-ビルドフェーズで「リソースのアップロード」ステージを「プログラムのコンパイル」より上に配置します"。理由はわかりませんが、役に立ちます。

于 2012-11-19T13:02:45.550 に答える