使用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_name
WindowsError: [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