这个问题出现的主要原因是在于astor模块把VERSION版本信息写在名为VERSION的文件里,在打包后,运行到__init__时候突然发现没有这个文件,就报错了。
ROOT = os.path.dirname(__file__)
with open(os.path.join(ROOT, 'VERSION')) as version_file:
__version__ = version_file.read().strip()
解决方法
- 在打包好的可执行文件同级下创建一个site-packages/astor文件夹,把VERSION文件放进去,其实就是模拟没打包时候的环境,你缺啥文件放进去就行了
- 简单粗暴一点,它不是要读版本嘛,直接给他就好了。其他的类似的pyinstaller的问题其实都可以通过这种方式来解决掉
# ROOT = os.path.dirname(__file__)
# with open(os.path.join(ROOT, 'VERSION')) as version_file:
# __version__ = version_file.read().strip()
__version__ = "0.8.1"