pyinstaller打包爬虫提示缺少js文件
引入文件:
current_dir = os.path.dirname(os.path.abspath(__file__))
js_file_path = os.path.join(current_dir, 'js/login.js')
with open(js_file_path, 'r', encoding='utf-8') as f:
js_file = f.read()
data = execjs.compile(js_file).call('test', "1", "2")
打包命令:
pyinstaller -F main.py --add-data "test1.js;." --add-data "test2.js;." --add-data "test3.js;."
如果运行时有这种报错
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 10509: illegal multibyte sequence
UnicodeDecodeError: 'gbk' codec can't decode byte \xaa in position 10509: illegal multibyte sequence
可以试着这样解决:
在import execjs之前加上下面的代码
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
import execjs