在使用pyppeteer+pyinstaller打包运行浏览器模拟程序时,出现NameError("name '__version__' is not defined") 错误问题。
导致该问题的原因是由于pyinstaller打包时没将pyppeteer的meta信息打进去,导致运行时候报错。
解决方式:增加 --copy-metadata参数
import PyInstaller.__main__
import os
if __name__ == '__main__':
pyi_args = [
'--upx-dir=F:\\soft\\upx-3.96-win64',
'--clean',
'--add-data={0};.'.format(os.path.realpath('config.ini')),
'--add-data={0};data'.format(os.path.realpath('data')),
'--add-data={0};static'.format(os.path.realpath('static')),
'--add-data={0};templates'.format(os.path.realpath('templates')),
'--copy-metadata=pyppeteer',
'--name=demo',
'main.py',
'-y'
]
print("pyinstaller " + " ".join(pyi_args))
PyInstaller.__main__.run(pyi_args=pyi_args)
当使用pyppeteer和pyinstaller打包浏览器模拟程序时,可能会遇到`NameError: name '__version__' is not defined`的错误。该问题是由于pyinstaller在打包时未包含pyppeteer的元数据。为解决此问题,可以在pyinstaller命令中添加`--copy-metadata=pyppeteer`参数。提供的Python脚本示例展示了如何正确配置这个参数进行打包。
564

被折叠的 条评论
为什么被折叠?



