包安装成功后的 ModuleNotFoundError

Posted

技术标签:

【中文标题】包安装成功后的 ModuleNotFoundError【英文标题】:ModuleNotFoundError after successful package installation 【发布时间】:2022-01-03 22:22:06 【问题描述】:

我正在尝试安装和使用新的 Python 包,例如mysql:

pip install mysql
Collecting mysqlNote: you may need to restart the kernel to use updated packages.
  Using cached mysql-0.0.3-py3-none-any.whl (1.2 kB)
Collecting mysqlclient
  Using cached mysqlclient-2.1.0-cp38-cp38-win_amd64.whl (180 kB)

Installing collected packages: mysqlclient, mysql
Successfully installed mysql-0.0.3 mysqlclient-2.1.0

但是,如果我运行代码,我会收到以下错误:

runfile('untitled1.py', wdir='')
Traceback (most recent call last):

  File "untitled1.py", line 1, in <module>
    import mysql.connector

ModuleNotFoundError: No module named 'mysql'

同样重启内核也没有解决问题:

Python 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 7.29.0 -- An enhanced Interactive Python.

Restarting kernel...

我在全新的 Anaconda 2.0.3 安装上使用 Spyder 5.0.0。

【问题讨论】:

【参考方案1】:

首先,我不熟悉 Anaconda,尽管通过快速搜索,我认为这不会改变我的答案。

来自 mysql 的 PyPI 描述:

这个包是一个“虚拟包”,需要 MySQL-python (Python 2) 或 mysqlclient (Python 3) 进行安装。实际上,这意味着 ‘pip install mysql’ 将实际安装 MySQL-python。

因为您使用的是 Python 3,所以它安装的是 mysqlclient。 pip 输出Installing collected packages: mysqlclient, mysql 证实了这一点。从那个包的docs,你可以看到你必须导入MySQLdb而不是mysql

【讨论】:

感谢您的回答!现在我觉得自己很愚蠢。至少问题似乎没有我想象的那么严重,也不应该适用于其他包。谢谢!

以上是关于包安装成功后的 ModuleNotFoundError的主要内容,如果未能解决你的问题,请参考以下文章

linux编译安装完软件比如说tar.gz格式的,家目录下解压后的包可以删除吗?

Centos7安装JDK和Tomcat详细步骤

成功安装 pip 后的 ImportError [重复]

Ubuntu安装redis

安装包可以删除吗? 就是解压后的文件夹 安装之后可以删除吗?

Redis的安装