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
转载请注明出处