簡體   English   中英

為Leopard和Snow Leopard編譯py2app工作版本?

[英]Compiling a py2app working build for both Leopard and Snow Leopard?

我目前正在使我的PyObjC應用程序適用於Snow Leopard並且我成功編譯了一個獨立的應用程序。 我的問題是,如果出現這些錯誤,我如何使構建與Leopard兼容?

dyld: lazy symbol binding failed: Symbol not found: _fopen$UNIX2003
  Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _fopen$UNIX2003
  Referenced from: /Applications/MyApp.app/Contents/MacOS/MyApp
  Expected in: /usr/lib/libSystem.B.dylib

這是一個Snow Leopard編譯的py2app應用程序。 另外,當我在Leopard上編譯時,另一方面,會發生以下錯誤:

Traceback (most recent call last):
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 31, in <module>
    _run('main.py')
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/__boot__.py", line 28, in _run
    execfile(path, globals(), globals())
  File "/Users/jofell/client/dist/MyApp.app/Contents/Resources/main.py", line 17, in <module>
    from AppKit import *
  File "AppKit/__init__.pyc", line 10, in <module>
  File "Foundation/__init__.pyc", line 10, in <module>
  File "CoreFoundation/__init__.pyc", line 17, in <module>
  File "objc/_bridgesupport.pyc", line 129, in initFrameworkWrapper
  File "objc/_bridgesupport.pyc", line 53, in _parseBridgeSupport
ValueError: Unknown typestr
2009-08-29 19:30:14.530 MyApp[445:903] MyApp Error
2009-08-29 19:30:14.534 MyApp[445:903] MyApp Error
An unexpected error has occurred during execution of the main script

任何幫助,將不勝感激。 提前致謝。

我最近這樣做了,訣竅是在Leopard安裝上構建一個獨立版本。

默認情況下,除非您安裝了Python的開源版本,否則py2app會創建一個半獨立應用程序,該應用程序具有操作系統文件的符號鏈接。

相反,如果您創建了應用程序的獨立版本,則解釋器和支持文件將嵌入到您的應用程序中,因此在運行應用程序的所有計算機上都是一致的。 這里提供有關創建完全獨立應用程序的說明,但請注意博客的評論,因為在撰寫博客文章后,某些內容確實發生了變化。

如果你有你需要的特定庫你可以在setup.py文件中引用它們,或者你總是可以手動將它們添加到dylib目錄(這對我來說更容易,因為我需要更改啟動腳本而不想重新生成),但要確保使用32位庫(它將在Leopard上)。

由於兩者都在不同的架構(分別為32位和64位),我認為你必須創建2個不同的編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM