ModuleNotFoundError: No module named 'MySQLdb'

ModuleNotFoundError: No module named 'MySQLdb'

老师,我在虚拟环境下终端运行python manage.py db migrate后,程序没有去我D盘的虚拟环境里找包,而是去C盘的原生python里找包,导致好多包ModuleNotFoundError,有什么办法可以让manage.py去我的虚拟环境找包吗?

相关代码:

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from app import app
from app import db

manager = Manager(app)
# 1.要使用flask-migrate,必须先绑定db和app
migrate = Migrate(app, db)

# 2.把migrateCommand命令添加到manager中。
manager.add_command('db', MigrateCommand)

if __name__ == "__main__":
manager.run()

相关代码:

Microsoft Windows [版本 10.0.19042.928]
(c) Microsoft Corporation。保留所有权利。

(venv) D:\ITrelated\lab_wiki_test>python manage.py db migrate
C:\Python\lib\site-packages\flask_sqlalchemy\__init__.py:873: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the futur
e. Set it to True or False to suppress this warning.
'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
Traceback (most recent call last):
File "manage.py", line 16, in <module>
manager.run()
File "C:\Python\lib\site-packages\flask_script\__init__.py", line 417, in run
result = self.handle(argv[0], argv[1:])
File "C:\Python\lib\site-packages\flask_script\__init__.py", line 386, in handle
res = handle(*args, **config)
File "C:\Python\lib\site-packages\flask_script\commands.py", line 216, in __call__
return self.run(*args, **kwargs)
File "C:\Python\lib\site-packages\flask_migrate\__init__.py", line 96, in wrapped
f(*args, **kwargs)
File "C:\Python\lib\site-packages\flask_migrate\__init__.py", line 212, in migrate
version_path=version_path, rev_id=rev_id)
File "C:\Python\lib\site-packages\alembic\command.py", line 212, in revision
script_directory.run_env()
File "C:\Python\lib\site-packages\alembic\script\base.py", line 490, in run_env
util.load_python_file(self.dir, "env.py")
File "C:\Python\lib\site-packages\alembic\util\pyfiles.py", line 97, in load_python_file
module = load_module_py(module_id, path)
File "C:\Python\lib\site-packages\alembic\util\compat.py", line 182, in load_module_py
spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "migrations\env.py", line 25, in <module>
str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
File "C:\Python\lib\site-packages\flask_sqlalchemy\__init__.py", line 998, in engine
return self.get_engine()
File "C:\Python\lib\site-packages\flask_sqlalchemy\__init__.py", line 1017, in get_engine
return connector.get_engine()
File "C:\Python\lib\site-packages\flask_sqlalchemy\__init__.py", line 594, in get_engine
self._engine = rv = self._sa.create_engine(sa_url, options)
File "C:\Python\lib\site-packages\flask_sqlalchemy\__init__.py", line 1027, in create_engine
return sqlalchemy.create_engine(sa_url, **engine_opts)
File "<string>", line 2, in create_engine
File "C:\Python\lib\site-packages\sqlalchemy\util\deprecations.py", line 298, in warned
return fn(*args, **kwargs)
File "C:\Python\lib\site-packages\sqlalchemy\engine\create.py", line 548, in create_engine
dbapi = dialect_cls.dbapi(**dbapi_args)
File "C:\Python\lib\site-packages\sqlalchemy\dialects\mysql\mysqldb.py", line 118, in dbapi
return __import__("MySQLdb")
ModuleNotFoundError: No module named 'MySQLdb'

(venv) D:\ITrelated\lab_wiki_test>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕燕燕 2021-05-14 15:12:37

同学,你好!可以添加python解释器,将D盘中的虚拟环境添加到当前项目中来,方法如下:

​打开Settings设置,Project: 项目名 -> Python Interpreter,添加python解释器,选择已经存在的虚拟环境,在打开的文本框中选择同学D盘的虚拟环境,选择python.exe,点击OK即可

http://img1.sycdn.imooc.com//climg/609e223f096d540c09990729.jpg

祝:学习愉快!

  • 提问者 向佐佐 #1

    老师,添加过了,程序还是没在虚拟环境找包

    2021-05-16 09:52:23
  • 时间, 回复 提问者 向佐佐 #2

    同学,你好!

    1、同学看下项目中选择的解释器是否为D盘中的虚拟环境

    2、改变解释器后终端需要重新打开

    3、看下虚拟环境中是否安装了相应的第三方包

    祝学习愉快!

    2021-05-16 10:54:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师