首页 > 解决方案 > PyInstaller 导入错误

问题描述

我已经用 PyInstaller 试验了几天。我的操作系统是 FreeBSD 10.4,我使用 Python 3.6。当我从终端发出这个命令时,一切正常:

# pyinstaller my_script.py

但是这个命令有一个前所未有的副作用。当我写这个时:

if __debug__:
  print("debug")

我将“调试”打印到控制台,这表明 PyInstaller 使用调试符号编译脚本。

在寻找这个问题的解决方案时,我发现通过 Python 解释器使用 -O 参数运行 PyInstaller 可以解决这个问题:

[root@bsd-pwb ~]# /usr/local/bin/python3.6 /usr/local/lib/python3.6/site-packages/PyInstaller/__main__.py my_script.py

但这一次,我明白了:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/PyInstaller/__main__.py", line 21, in <module>
    from . import __version__
ImportError: cannot import name '__version__'

我在这里做错了什么?如何让 PyInstaller 在“ debug ”设置为“False”的情况下进行编译?

标签: pyinstaller

解决方案


我建议您完全按原样尝试您的脚本,但使用 Python 3.5 环境,有很多出版物可以让您意识到 pyinstaller 使用 python 3.5 版本比使用 3.6 更稳定。我有几个错误作为你正在评论的那个,最后他们得到解决只是在 python<=3.5 上运行我的脚本


推荐阅读