使用 cx-freeze 构建 PySide 程序 osx 的奇怪错误
Posted
技术标签:
【中文标题】使用 cx-freeze 构建 PySide 程序 osx 的奇怪错误【英文标题】:Strange error using cx-freeze to build a PySide program osx 【发布时间】:2014-12-02 19:01:11 【问题描述】:我在运行通过anaconda python distribution 安装的python 2.7.8 的64 位mac 上使用cx-freeze4.3.3。程序很简单,如下:
import sys
from PySide.QtGui import QApplication, QDialog
app = QApplication(sys.argv)
form = QDialog()
form.show()
app.exec_()
setup.py 文件是标准的,包含以下内容:
options =
'build_exe':
'includes': 'atexit'
executables = [
Executable('test.py', base=base)
]
运行python setup.py build
时出现如下错误:
复制 libpython2.7.dylib -> build/exe.macosx-10.5-x86_64-2.7/libpython2.7.dylib 错误:[Errno 2] 没有这样的文件或目录:'libpython2.7.dylib'
这可能是什么问题? libpython2.7.dylib位于/anaconda/lib,在系统路径中。
【问题讨论】:
我使用自制软件切换到 py2app 和 python 安装。这对我有用。 【参考方案1】:我在 OSX 上遇到了与 cx_freeze 类似的问题,找不到要复制的文件。我在某个论坛中找到了解决方案(无法再次找到):
在 cx_freeze 文件 freezer.py
的函数 _GetDependentFiles
中添加以下行:
for i in range(len(dependentFiles)):
filei = dependentFiles[i]
if not os.path.isabs(filei):
print 'TD bug fix: adding ' + sys.prefix + '/lib to relative path ' + filei + '!'
dependentFiles[i] = os.path.join(sys.prefix,'lib',filei)
现在python setup.py build
运行但构建的程序运行不正确!!可能你会遇到同样的问题,我无法解决。所以我发布了这个问题:Failed making a standalone python/Qt application with cx_freeze (or Py2App) on Mac 并希望得到答案......
【讨论】:
以上是关于使用 cx-freeze 构建 PySide 程序 osx 的奇怪错误的主要内容,如果未能解决你的问题,请参考以下文章
我在 Pycharm 中使用 PySide2 来构建我的 GUI 程序,但是在哪里可以找到参考文档?
使用 py2app 构建 PySide 应用程序包时,QApplication 未在主线程中运行
Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法