0

Pythonの最小限の部分を、内部スクリプト用のiOSアプリケーションの一部(静的ライブラリ)として機能させるようにしています。Mac OS X(10.7)でconfigureを使用しましたが、成功しました。次に、コンパイル可能でリンク可能なXCodeプロジェクトを非常に高速に取得しました。問題は、Pythonを使用しようとすると

Py_NoSiteFlag=1;
Py_Initialize();

「致命的なPythonエラー:例外ブートストラップエラー」というエラーで失敗します。_PyExc_Init()内。デバッグしようとしましたが、残念ながら失敗する理由がわかりません。私はPythonソースを知らないからかもしれませんが、とにかく、それを移植する必要があります。2.7.3または3.2.3を試してみましたが、上記と同じ結果でした。解決策やヒントは非常に役立ちます。

コールスタック:

#0        0x300cba1c in __pthread_kill ()
#1        0x362e43ba in pthread_kill ()
#2        0x362dcbfe in abort ()
#3        0x00127d96 in Py_FatalError at /Users/mac_user/Downloads/Python-3.2.3/IOS/pythoncore/../../Python/pythonrun.c:2169
#4        0x00155328 in _PyExc_Init at /Users/mac_user/Downloads/Python-3.2.3/IOS/pythoncore/../../Objects/exceptions.c:2042
#5        0x00127ad4 in Py_InitializeEx at /Users/mac_user/Downloads/Python-3.2.3/IOS/pythoncore/../../Python/pythonrun.c:272
#6        0x0012846a in Py_Initialize at /Users/mac_user/Downloads/Python-3.2.3/IOS/pythoncore/../../Python/pythonrun.c:332
#7        0x000d6242 in testpython at /Users/mac_user/Downloads/Python-3.2.3/IOS/test/test/testmac.c:15
#8        0x000d618e in -[ViewController viewDidLoad] at /Users/mac_user/Downloads/Python-3.2.3/IOS/test/test/ViewController.m:23
#9        0x3283ff0e in -[UIViewController view] ()
#10        0x3283e2b4 in -[UIWindow addRootViewControllerViewIfPossible] ()
#11        0x3283a332 in -[UIWindow _setHidden:forced:] ()
#12        0x3283e28e in -[UIWindow _orderFrontWithoutMakingKey] ()
#13        0x3284cc60 in -[UIWindow makeKeyAndVisible] ()
#14        0x000d5ffe in -[AppDelegate application:didFinishLaunchingWithOptions:] at /Users/mac_user/Downloads/Python-3.2.3/IOS/test/test/AppDelegate.m:35
#15        0x3283e820 in -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] ()
#16        0x32838b64 in -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] ()
#17        0x3280d7d6 in -[UIApplication handleEvent:withNewEvent:] ()
#18        0x3280d214 in -[UIApplication sendEvent:] ()
#19        0x3280cc52 in _UIApplicationHandleEvent ()
#20        0x322b7e76 in PurpleEventCallback ()
#21        0x3113ba96 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#22        0x3113d83e in __CFRunLoopDoSource1 ()
4

1 に答える 1

0

2つの考え:

  1. 発生するエラーは、組み込みモジュールのインポートに失敗したことによるものです。

    http://hg.python.org/releasing/3.2.3/file/86d1421a552c/Objects/exceptions.cから

    2040     bltinmod = PyImport_ImportModule("builtins");   
    2041     if (bltinmod == NULL)
    2042         Py_FatalError("exceptions bootstrapping error.");
    

    そこからコードをフォローアップできますが、このインポートが失敗する理由はたくさんあります。実際に何が間違っているのかを知りたい場合は、それをステップスルーする必要があります。

  2. または、これをチェックすることができます:

    https://github.com/cobbal/python-for-iphone

    「Pythonを公式SDKで使用できる静的ライブラリにコンパイルするためのスクリプトをビルドする」

于 2012-05-21T09:52:25.360 に答える