pyinstaller可以将 python虚拟机、脚本以及脚本的依赖库打包到一个可执行文件,这样就可以简单 scp 到没有 python 解释器或低版本 python 解释器的服务器上,然后直接执行了(是不是与golang的静态编译成一个大文件的效果类似?).
今天在执行时遇到了这个错误:
...
File "site-packages/records.py", line 242, in __init__
File "site-packages/sqlalchemy/engine/__init__.py", line 425, in create_engine
File "site-packages/sqlalchemy/engine/strategies.py", line 81, in create
File "site-packages/sqlalchemy/dialects/mysql/pymysql.py", line 62, in dbapi
ModuleNotFoundError: No module named 'pymysql'
原因是我脚本里用了个数据库操作第三方库records,这个库可以无需显式 import pymysql
驱动来连接 MySQL,但因为脚本里没有显式 import pymysql
, pyinstaller就没有将pymysql这个依赖打包进去,导致报错了~
有疑问加站长微信联系(非本文作者)