我有一个不会使用 pyinstaller 打包到 exe 的 GUI 应用程序。当我运行 pyinstaller main.py --onefile --windowed 时,出现以下错误。
Traceback (most recent call last):
File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'pendulum.locales'
我将 pendulum 从 1.4 更新到 2.0.5,然后 exe 构建得很好。但是,这不会运行。我在没有 --windowed 标志的情况下重新运行了 pyinstaller,然后可以看到我正在使用的 ORM(演说者)与 > 1.4 pendulum 不兼容,并且无法导入 Pendulum form pendulum。
from pendulum import Pendulum, Date
ImportError: cannot import name 'Pendulum' from 'pendulum' (C:\Users\Paul\PycharmProjects\JobsV10\venv\lib\site-packages\pendulum\__init__.py)
我尝试了以下帖子来更改 pyinstaller 中的钩子,但这些都不起作用。
https://github.com/pyinstaller/pyinstaller/issues/3528
我真的不想删除 orator,因为我经常使用 Laravel,并且 orator 接近我熟悉的优秀 Eloquent。有没有办法让 pyinstaller 与 pendulum 1.4 一起工作?
更新
改变
datas = collect_data_files("pendulum.locales", include_py_files=True)
在站点 Packages/Pyinstalller/hooks/hook-pendulum.py 到
datas = collect_data_files("pendulum", include_py_files=True)
似乎已经成功了。
不打算将此标记为答案,因为我不确定这是否会导致问题。