我写了一个需要几个模块的Python脚本,这些模块是:
PyQt5, plotly, 大熊猫, 约会时间, xlsxwriter
我正在尝试使用cx_freeze将它们转换为.exe。我之前用过一个主要依赖PyQt5的简单程序做过一次。
该行:
python setup.py build
在命令提示符下完成且没有错误。
我的setup.py文件如下:
import sys
kwargs = {"name": "x",
"version": "1.2",
"author": "x",
"author_email": "x",
"description": "x",
"zip_safe": False
}
try:
if sys.argv[1] == "build":
import os
from setuptools import find_packages
from cx_Freeze import setup, Executable
kwargs["options"] = {
"build_exe": {
"packages": find_packages() + ["os", "numpy", "plotly", "xlsxwriter", "sys", "datetime"],
"includes": ["numpy", "plotly", "pkg_resources", "PyQt5", "xlsxwriter", "sys", "datetime","codecs"],
}
}
kwargs["executables"] = [Executable(r"MyScript.py",
base="console")]
setup(**kwargs)
except Exception as e:
print(e)
[username]的行中包含我的用户名。
当我运行它时,命令行显示为:
Fatal Python error: Py_Initialize: unable to load the file system codec
Traceback (most recent call last):
File "C:\Users\[Username]\AppData\Local\Programs\Python\Python36\lib\encodings\__init__.py", line 31, in <module>
ModuleNotFoundError: No module named 'codecs'
更新
在互联网上阅读更多内容后,似乎可能是安装问题。所以我卸载并重新安装了Python以及卸载Anaconda后我需要的所有模块(以防它与Anaconda发行版有关)。但是,我仍然看到上述错误。 是一个名为codecs的模块,Python脚本(不是.exe)工作正常。我尝试更改路径变量以确保它指向正确版本的Python(尽管我已经卸载了所有其他版本)。
另外,我正在跑步:
操作系统:Windows 7
Python:Python 3.6.3 64位
答案 0 :(得分:1)
事实证明问题是cx_freeze。如果您使用pip进行安装,则不会安装最新版本。相反,我用Google搜索“cx_freeze下载”,为我的Windows版本下载了最新的.whl,然后运行:
pip install [name of file here].whl
之后还有其他问题,但编解码器问题已经解决。