pycharm -> Tools -> Run manage.py Task 时,出现ModuleNotFoundError: No module named 'MySQLdb'
, 出现该错误的原因是:mysql数据库
与pycharm
之间缺少了Python interface to MySQL
, 也就是缺少了MySQL driver
。
mysql-python only supports Python 2.x, while Python 3 should use mysql-connector-python
。
但是安装了mysql-connector-python
之后,仍是报错:No module named 'MySQLdb'。究其原因,大概是pycharm项目使用的虚拟环境中并没有安装mySQL和mysqlclient
$brew install mySQL
$pip install mysqlclient
于是在终端中执行:
$brew install mySQL
$pip install mysqlclient
在终端中进入python3环境,import MySQLdb
也可以成功导入该模块的。但是在Pycharm中Run manage.py Task
时,还是出现ModuleNotFoundError: No module named 'MySQLdb'
错误。
因此需要在Pycharm -> Preferences -> Project mooc -> Project Interpreter -> '+'添加package: mysql(会顺带安装mysqlclient, 没有安装的话,自己再添加mysqlclient)
。
执行过该操作后Run manage.py Task
就不会报错了。
由此可见,Pycharm中需要导入packages
时,需要在Pycharm中进行Pycharm -> Preferences -> Project mooc -> Project Interpreter -> '+'添加package
。而不要使用命令行,因为Pycharm使用的是自己的虚拟环境。
顺带提下,mac下安装mysql不要使用.dmg
安装包进行安装,而要使用命令行安装:
$ brew install mySQL
$ pip install mysqlclient
后记,Pycharm中去掉mysql模块,也是可行的。原因大概是通过命令行$ brew install mySQL
安装的mysql也是可以被Pycharm的虚拟环境 访问。
通过命令行$ pip install mysqlclient
安装的mysqlclient,被安装到了~/.pyenv/versions/3.6.9/lib/python3.6/site-packages/
目录, 而Pycharm构建的虚拟环境是在自己项目目录下的venv
目录,通过Pycharm导入的packages
也是在该目录结构下。它们各玩各的,互不影响。因此,Pycharm中也要导入mysqlclient package
,才能访问mysql
。
sql基础语句:https://www.jianshu.com/p/07acd84dfcdd
转载请注明出处