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...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。