py2exe打包pyside项目时出错

来源:互联网 发布:淘宝管理中心在哪 编辑:程序博客网 时间:2024/05/29 12:32

使用py2exe打包pyside时发现如下错误:

Traceback (most recent call last):  File "Main.py", line 4, in <module>  File "zipextimporter.pyo", line 82, in load_module  File "PySide\__init__.pyo", line 41, in <module>  File "PySide\__init__.pyo", line 11, in _setupQtDirectories  File "PySide\_utils.pyo", line 97, in get_pyside_dir  File "PySide\_utils.pyo", line 88, in _get_win32_case_sensitive_name  File "PySide\_utils.pyo", line 63, in _get_win32_short_nameWindowsError: [Error 3] 系统找不到指定的路径。

查源代码_utils.py源码如下:

    def get_pyside_dir():        try:            from . import QtCore        except ImportError:            return os.path.abspath(os.path.dirname(__file__))        else:            return os.path.abspath(os.path.dirname(QtCore.__file__))

可知主要问题在于这里打包成exe zip后,__file__表示的路径找不到了,作如下修改即可解决问题

    def get_pyside_dir():        is_frozen = hasattr(sys, 'frozen')        try:            from . import QtCore        except ImportError:             s1 = sys.argv[0] if is_frozen else __file__            return _get_win32_case_sensitive_name(os.path.abspath(os.path.dirname(s1)))        else:            s2 = sys.argv[0] if is_frozen else QtCore.__file__            return _get_win32_case_sensitive_name(os.path.abspath(os.path.dirname(s2)))

参考这里https://stackoverflow.com/questions/17509088/system-path-error-with-pyqt-and-py2exe

原创,转载请注明来自http://blog.csdn.net/wenzhou1219