PyInstaller ImportError

时间:2018-05-10 14:53:09

标签: pyinstaller

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

# pyinstaller my_script.py

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

if __debug__:
  print("debug")

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

在寻找这个问题的解决方案时,我发现使用-O参数通过Python解释器运行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__'

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

2 个答案:

答案 0 :(得分:0)

我建议您完全按原样尝试使用脚本,但是使用Python 3.5环境时,有很多出版物可以使您认识到pyinstaller使用python 3.5版本比3.6更稳定。我在评论时遇到了几个错误,最后仅在python <= 3.5

上运行我的脚本就解决了

答案 1 :(得分:0)

实际上,您可以使用另一种方法通过the docs使其起作用:在您的情况下,将PYTHONOPTIMIZE环境变量显式设置为非零值:

PYTHONOPTIMIZE=1 pyinstaller myscript.py