pyinstaller - 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”的情况下进行编译?
解决方案
我建议您完全按原样尝试您的脚本,但使用 Python 3.5 环境,有很多出版物可以让您意识到 pyinstaller 使用 python 3.5 版本比使用 3.6 更稳定。我有几个错误作为你正在评论的那个,最后他们得到解决只是在 python<=3.5 上运行我的脚本
推荐阅读
- algorithm - Implementation: Algorithm for a special distribution Problem
- python - 带有值和字典的熊猫元组进入数据框
- reporting-services - SSRS 使过滤器成为可选
- shell - shell 脚本不算数
- javascript - 如何在引导警报警告 div 而不是警报框中显示 jQuery Datatable 错误
- python - Python output iterating through list based on user input
- python - Pandas 3D obj 模型加载
- forms - Symfony 2.8 - Set default value with data from session and propel
- mysql - Bulk change the order status based on a date in Woocommerce
- jquery - 如何在 toValue/toDisplay 上为引导日期选择器使用不同的语言?