0
我正在構建一個使用MySQLdb的應用程序,它似乎可以正確構建,但在另一臺Mac上運行時,它意外退出。 是否有任何必需的步驟來正確使用py2app包含MySQLdb? 這裏是我的setup.py:py2app不能與MySQLdb一起使用
from setuptools import setup
APP = ['myApplication.py']
DATA_FILES = []
OPTIONS = {
'iconfile':'myIcon.icns',
'plist': {'CFBundleShortVersionString':'1.0',
'NSHumanReadableCopyright': u"Copyright © 2016, All Rights Reserved"}}
setup(
app=APP,
name='Transcoder_V1.0',
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
我以前建立了這個成功地利用這個確切的設置和完全相同的myApplication.py,這並在其他Mac電腦上運行,所以它改變的唯一事情是版本號碼是:
Python: 2.7.11
MySQL-Python: 1.2.5
mysql-connector-python: 2.0.4
mysqlclient: 1.3.7
py2app: 0.9
setuptools: 20.3
有什麼我可以嘗試解決的?
更新: 我只是想加入到設置:
PACKAGES = ['MySQLdb']
INCLUDES = ['MySQLdb']
OPTIONS = {'argv_emulation': True,
'packages': PACKAGES,
'includes': INCLUDES,
}
但我仍然得到unexpedidly的退出,這是控制檯崩潰日誌的開頭:
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libmysqlclient.18.dylib 0x000000010baf5e18 mysql_server_init + 132
1 _mysql.so 0x00000001095b0fc1 0x1095ad000 + 16321
2 org.python.python 0x00000001022c410c PyEval_EvalFrameEx + 40108
3 org.python.python 0x00000001022c4ff3 PyEval_EvalCodeEx + 2131
任何其他的想法我可以試試嗎?
更新: 我連接到MySQL服務器5.6版,我需要更新嗎?
我只是想增加在py2app的東西,同樣的結果,看到我的UPDATE以上? – speedyrazor
是的,日誌不是很豐富,但它似乎無法找到libmysqlclient.18.dylib。檢查文件是否在您正在製作的發行版中。有一個問題在Stackoverflow專門爲該文件,看到它可以幫助你:http://stackoverflow.com/questions/6383310/python-mysqldb-library-not-loaded-libmysqlclient-18-dylib – armatita
文件存在於該位置,你需要在目標機器上安裝MySQL嗎? – speedyrazor