In [29]: import MySQLdb
In [31]: MySQLdb
Out[31]: <module 'pymysql' from 'G:\\QGB\\Anaconda3\\lib\\site-packages\\pymysql\\__init__.py'>
为什么 MySQLdb 不存在,为什么我可以导入它?
我想知道为什么在 sys.path 中没有“MySQLdb”python 文件或目录。我应该如何在 Python 中导入“MySQLdb”?
在 Django 中 VERSION = (2, 1, 1, 'final', 0),
\Lib\site-packages\django\db\backends\mysql\base.py 第 15 行。
import MySQLdb as Database
最佳答案
MySQLdb
导入可能来自不同的包(使用 pip install mysqlclient
安装)。
发行版 pymysql
旨在用作 the original project 的直接替代品, 但出于礼貌,他们没有采用相同的进口名称。相反,they provide a convenience function在 sys.modules
中占用相同的名称。这样,import MySQLdb
将不再尝试遍历 sys.path
,而是重新使用已经加载的 pymysql
模块:
>>> import pymysql
>>> pymysql.install_as_MySQLdb??
Signature: pymysql.install_as_MySQLdb()
Source:
def install_as_MySQLdb():
"""
After this function is called, any application that imports MySQLdb or
_mysql will unwittingly actually use pymysql.
"""
sys.modules["MySQLdb"] = sys.modules["_mysql"] = sys.modules["pymysql"]
File: ~/.venv/lib/python3.7/site-packages/pymysql/__init__.py
Type: function
关于python - MySQLdb模块真实文件路径在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53040368/