0

我正在尝试使用 pyinstaller 创建一个可执行文件,但它在启动该可执行文件后立即崩溃。应该注意的是,该程序在 PyCharm 中运行良好。我已经将它缩小到只有一行代码,这会导致它使用另一个 python 文件出错 - 如果文件包含'''import pdfrw''',它将在启动由 pyinstaller 创建的可执行文件时立即崩溃。

我已经从以管理员模式运行的命令提示符尝试了以下命令,所有这些都给出了相同的结果(这是在将目录更改为 .py 文件所在的位置之后):

pyinstaller "compiling test.py"

pyinstaller --onefile "compiling test.py"

pyinstaller --onedir "compiling test.py"

在 import 语句周围使用 try/except 子句,我可以在关闭可执行文件之前看到错误消息,它说:

无法加载本机模块“Crypto.Cipher._raw_ecb”:尝试“_raw_ecb.cp36-win_amd64.pyd”:无法加载库“C:\Users\KYLE~1.AFF\AppData\Local\Temp_MEI534042\Crypto\Util..\ Cipher_raw_ecb.cp36-win_amd64.pyd':错误 0x7e。此外,ctypes.util.find_library() 无法找到名为 'C:\Users\KYLE~1.AFF\AppData\Local\Temp\_MEI534042\Crypto\Util\..\Cipher\_raw_ecb.cp36- 的库win_amd64.pyd',尝试 '_raw_ecb.pyd':无法加载库 'C:\Users\KYLE~1.AFF\AppData\Local\Temp_MEI534042\Crypto\Util..\Cipher_raw_ecb.pyd':错误 0x7e。此外,ctypes.util.find_library() 无法找到名为“C:\Users\KYLE~1.AFF\AppData\Local\Temp\_MEI534042\Crypto\Util\..\Cipher\_raw_ecb.pyd”的库

有没有办法可以修改规范文件以正确生成文件(或其他解决方案)?当我需要使用 python-docx 制作可执行文件时,我发现了类似的东西(而且我很可能也需要为这个程序执行此操作,因为我试图制作可执行文件的原始 python 程序也使用 python-docx as pdfrw): PyInstaller 和 python-docx 模块不能一起工作

提前感谢您的帮助。

4

1 回答 1

1

所以我刚刚找到了解决方案!当它沿着名为 \KYLE~1.AFF\ 的用户路径下行时,它提示了我,因为该用户不应该存在,尽管它以某种方式被创建。删除该用户文件后,我通过 升级了 pyinstaller pip install --upgrade pyinstaller,它卸载了 3.3.1 版,并安装了 3.6 版,现在它可以正常工作了。所以可能是新版本,但我猜在我删除了不应该存在的用户目录后,它更有可能是全新安装。不知道为什么它只出错了那个库。

于 2020-03-31T19:06:47.653 回答