使用 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 未在主线程中运行

即使特别包含,cx-freeze 也无法包含模块

创建与矩形不同形状的 pyside 应用程序

如何打包 PySide2 应用程序以进行分发?

Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法