pyinstaller的报错--ModuleNotFoundError: No module named 'pymysql'

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 records

...code...
```这个库可以无需显式 `import pymysql `驱动来连接 MySQL,但因为脚本里没有显式 `import pymysql`, pyinstaller就没有将pymysql这个依赖打包进去,导致报错了;解决办法就是显式 `import pymysql`到代码里,让 pyinstaller 知道:  

import records
import pymysql

...code...

你可能感兴趣的:(pyinstaller的报错--ModuleNotFoundError: No module named 'pymysql')