Python:"ModuleNotFoundError",但是模块安装了吗?
Python: "ModuleNotFoundError", but module is installed?
我意识到这似乎是一个普遍的问题,但所有答案都指向有两个同时 python
安装 - 我已经卸载了另一个。
目前我 运行 我的代码来自 PyCharm 2017.1.5 (windows 10) Python 解释器设置为Python 3.6.1 (C:\Anaconda3\python.exe)
,即我安装了 Anaconda3,其中包括来自 PyCharm[=35 的 matplotlib
和 运行 =] 使用 Ananconda3-解释器。
我在 Anaconda Navigator 中检查了环境中安装了 matplotlib 2.0.2
。
一个最小的(非工作)示例:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
Returns出现如下错误:
C:\Anaconda3\python.exe C:/Users/John/Documents/CPU/master/untitled/main11.py
Traceback (most recent call last):
File "C:/Users/John/Documents/CPU/master/untitled/main11.py", line 1, in <module>
import matplotlib.pyplot as plt
File "C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 29, in <module>
import matplotlib.colorbar
File "C:\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 34, in <module>
import matplotlib.collections as collections
File "C:\Anaconda3\lib\site-packages\matplotlib\collections.py", line 37, in <module>
import matplotlib.lines as mlines
File "C:\Anaconda3\lib\site-packages\matplotlib\lines.py", line 28, in <module>
from matplotlib.markers import MarkerStyle
ModuleNotFoundError: No module named 'matplotlib.markers'
Process finished with exit code 1
这 运行 两周前还不错,但现在不行了。据我所知,我没有更改或更新任何内容。模块加载正确,但似乎是模块内容发生了变化?如果是这样:那是怎么发生的,我该如何解决?
很难直接回答这个问题,但是,我在使用 PyCharm 和 Anaconda 的公司 Windows 环境中看到了大量问题,这些是您可能遇到的一些问题
检查你 PATH
是否正确指向所有 Anaconda 位置
import sys
sys.path
请检查您的文件是否已被您的 IT 团队迁移到 C:\Users\username\AppData\Roaming
- 为任何
python
发行版清除您的系统。可能有一些您在内部使用的软件发行版打包了它们自己的 python
发行版。这通常可以包含在 PATH
中。另一个例子可能是将 Anaconda 安装到您的 C:\
,但也可能是在 Users\Local\AppData
或 'C:\Program Files'
个月前就已安装并忘记了!
直接调试问题的一个好方法是导航到 ipython
中的以下目录
C:\Anaconda3\lib\site-packages\matplotlib
他们尝试 import matplotlib.markers
如果失败,您可以尝试
import matplotlib
matplotlib.__file__
你应该检查这个结果是否给出
'C:\Anaconda3\lib\site-packages\matplotlib\__init__.pyc'
很可能会优先安装另一个 matplotlib
版本。这将属于上述问题之一,需要更正。
@ImportanceOfBeingErnest 引导我朝着正确的方向前进。我 post 我的解决方案在这里 s.t。其他人可能会找到答案。问题是损坏的磁盘扇区 - 不太可能的偶然事件。
问题确实出在 matplotlib
软件包本身。回顾过去,问题的指针是预分发包中的错误不应该存在。如果是这样,则外部环境一定已经损坏,问题不在于 Python 安装本身。
我使用 conda remove matplotlib
通过 Anaconda Prompt 卸载了 matplotlib
,然后使用 conda install matplotlib
重新安装。这给了我这个错误:
(C:\Anaconda3) C:\Users\John>conda install matplotlib
[...]
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package 'defaults::matplotlib-2.0.2-np112py36_0'.
OSError(22, 'Invalid argument') Attempting to roll back.
OSError(22, 'Invalid argument')
在@Ernest 的评论之前,我认为这可能与 non-ASCII in PATH
or similar 有关。
相反,我尝试完全重新安装 Anaconda3,重新启动后发现 Anaconda3 文件夹的一部分没有被删除(包含 matplotlib
的文件夹)。
手动删除它出现 Windows 错误 0x80070570
。在 this post on ServerFault(对 OP 的评论)之后,我 运行 进行了检查,然后从 Windows Explorer GUI 进行了修复:右键单击驱动器这台电脑 --> 属性 --> 选项卡工具 --> 检查(修复如果发现任何错误出现)。
重新启动后,从头开始重新安装 Anaconda3 并重新启动,我又可以 运行 我的项目了!
PyCharm 需要安装解释器中可用的包。
您可以使用以下步骤找到可用于安装的 matplotlib 和其他软件包:
- 打开文件--设置--项目--项目解释器菜单。
- 您应该会看到当前已安装的所有软件包,并且该列表中应该缺少 matplotlib。
- 点击右侧的+(添加)按钮,安装matplotlib包。
- 完成后,关闭顶部对话框,您应该会在已安装包列表中看到 matplotlib。
在我的例子中,我可以通过将 PYTHONPATH
设置为所需包所在的 site-packages
文件夹的路径来修复它,不包括 site-pacages
。
我用的是pyenv
虚拟环境,路径是/home/apk/.pyenv/versions/python-3-7-4
。激活环境后,pip
将软件包安装到 /home/apk/.pyenv/versions/python-3-7-4/lib/python3.7/site-packages
。因此,在终端中,我设置:
$ PYTHONPATH=/home/apk/.pyenv/versions/python-3-7-4/lib/python3.7/
python
的 Windows 安装也应如此。
如果使用虚拟环境,那么可以编辑 activate
脚本来设置 PYTHONPATH
.
完成后,我签入了python
shell。
$ python
Python 3.7.4 (default, Feb 5 2020, 17:11:33)
[GCC 5.5.0 20171010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/apk/.pyenv/versions/3.7.4/lib/python37.zip', '/home/apk/.pyenv/versions/3.7.4/lib/python3.7', '/home/apk/.pyenv/versions/3.7.4/lib/python3.7/lib-dynload', '/home/apk/.pyenv/versions/python-3-7-4/lib/python3.7']
>>> sys.executable
'/home/apk/.pyenv/versions/python-3-7-4/bin/python'
祝你好运!
参考资料
使用 pip 时出现相同类型的错误。创建了新的 VENV 并执行解决了我的问题的应用程序
我意识到这似乎是一个普遍的问题,但所有答案都指向有两个同时 python
安装 - 我已经卸载了另一个。
目前我 运行 我的代码来自 PyCharm 2017.1.5 (windows 10) Python 解释器设置为Python 3.6.1 (C:\Anaconda3\python.exe)
,即我安装了 Anaconda3,其中包括来自 PyCharm[=35 的 matplotlib
和 运行 =] 使用 Ananconda3-解释器。
我在 Anaconda Navigator 中检查了环境中安装了 matplotlib 2.0.2
。
一个最小的(非工作)示例:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
Returns出现如下错误:
C:\Anaconda3\python.exe C:/Users/John/Documents/CPU/master/untitled/main11.py
Traceback (most recent call last):
File "C:/Users/John/Documents/CPU/master/untitled/main11.py", line 1, in <module>
import matplotlib.pyplot as plt
File "C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 29, in <module>
import matplotlib.colorbar
File "C:\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 34, in <module>
import matplotlib.collections as collections
File "C:\Anaconda3\lib\site-packages\matplotlib\collections.py", line 37, in <module>
import matplotlib.lines as mlines
File "C:\Anaconda3\lib\site-packages\matplotlib\lines.py", line 28, in <module>
from matplotlib.markers import MarkerStyle
ModuleNotFoundError: No module named 'matplotlib.markers'
Process finished with exit code 1
这 运行 两周前还不错,但现在不行了。据我所知,我没有更改或更新任何内容。模块加载正确,但似乎是模块内容发生了变化?如果是这样:那是怎么发生的,我该如何解决?
很难直接回答这个问题,但是,我在使用 PyCharm 和 Anaconda 的公司 Windows 环境中看到了大量问题,这些是您可能遇到的一些问题
检查你
PATH
是否正确指向所有 Anaconda 位置import sys sys.path
请检查您的文件是否已被您的 IT 团队迁移到
C:\Users\username\AppData\Roaming
- 为任何
python
发行版清除您的系统。可能有一些您在内部使用的软件发行版打包了它们自己的python
发行版。这通常可以包含在PATH
中。另一个例子可能是将 Anaconda 安装到您的C:\
,但也可能是在Users\Local\AppData
或'C:\Program Files'
个月前就已安装并忘记了!
直接调试问题的一个好方法是导航到 ipython
C:\Anaconda3\lib\site-packages\matplotlib
他们尝试 import matplotlib.markers
如果失败,您可以尝试
import matplotlib
matplotlib.__file__
你应该检查这个结果是否给出
'C:\Anaconda3\lib\site-packages\matplotlib\__init__.pyc'
很可能会优先安装另一个 matplotlib
版本。这将属于上述问题之一,需要更正。
@ImportanceOfBeingErnest 引导我朝着正确的方向前进。我 post 我的解决方案在这里 s.t。其他人可能会找到答案。问题是损坏的磁盘扇区 - 不太可能的偶然事件。
问题确实出在 matplotlib
软件包本身。回顾过去,问题的指针是预分发包中的错误不应该存在。如果是这样,则外部环境一定已经损坏,问题不在于 Python 安装本身。
我使用 conda remove matplotlib
通过 Anaconda Prompt 卸载了 matplotlib
,然后使用 conda install matplotlib
重新安装。这给了我这个错误:
(C:\Anaconda3) C:\Users\John>conda install matplotlib
[...]
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package 'defaults::matplotlib-2.0.2-np112py36_0'.
OSError(22, 'Invalid argument') Attempting to roll back.
OSError(22, 'Invalid argument')
在@Ernest 的评论之前,我认为这可能与 non-ASCII in PATH
or similar 有关。
相反,我尝试完全重新安装 Anaconda3,重新启动后发现 Anaconda3 文件夹的一部分没有被删除(包含 matplotlib
的文件夹)。
手动删除它出现 Windows 错误 0x80070570
。在 this post on ServerFault(对 OP 的评论)之后,我 运行 进行了检查,然后从 Windows Explorer GUI 进行了修复:右键单击驱动器这台电脑 --> 属性 --> 选项卡工具 --> 检查(修复如果发现任何错误出现)。
重新启动后,从头开始重新安装 Anaconda3 并重新启动,我又可以 运行 我的项目了!
PyCharm 需要安装解释器中可用的包。
您可以使用以下步骤找到可用于安装的 matplotlib 和其他软件包:
- 打开文件--设置--项目--项目解释器菜单。
- 您应该会看到当前已安装的所有软件包,并且该列表中应该缺少 matplotlib。
- 点击右侧的+(添加)按钮,安装matplotlib包。
- 完成后,关闭顶部对话框,您应该会在已安装包列表中看到 matplotlib。
在我的例子中,我可以通过将 PYTHONPATH
设置为所需包所在的 site-packages
文件夹的路径来修复它,不包括 site-pacages
。
我用的是pyenv
虚拟环境,路径是/home/apk/.pyenv/versions/python-3-7-4
。激活环境后,pip
将软件包安装到 /home/apk/.pyenv/versions/python-3-7-4/lib/python3.7/site-packages
。因此,在终端中,我设置:
$ PYTHONPATH=/home/apk/.pyenv/versions/python-3-7-4/lib/python3.7/
python
的 Windows 安装也应如此。
如果使用虚拟环境,那么可以编辑 activate
脚本来设置 PYTHONPATH
.
完成后,我签入了python
shell。
$ python
Python 3.7.4 (default, Feb 5 2020, 17:11:33)
[GCC 5.5.0 20171010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/apk/.pyenv/versions/3.7.4/lib/python37.zip', '/home/apk/.pyenv/versions/3.7.4/lib/python3.7', '/home/apk/.pyenv/versions/3.7.4/lib/python3.7/lib-dynload', '/home/apk/.pyenv/versions/python-3-7-4/lib/python3.7']
>>> sys.executable
'/home/apk/.pyenv/versions/python-3-7-4/bin/python'
祝你好运!
参考资料
使用 pip 时出现相同类型的错误。创建了新的 VENV 并执行解决了我的问题的应用程序