Python: "ModuleNotFoundError",但是安装了模块?

标签 python matplotlib module anaconda python-module

<分区>

我意识到这似乎是一个普遍的问题,但所有答案都指向同时安装了两个 python - 我已经卸载了另一个。

目前我从 PyCharm 2017.1.5 (windows 10) 运行我的代码,Python 解释器设置为 Python 3.6.1 (C:\Anaconda3\python.exe) ,即我安装了 Anaconda3,其中包括 matplotlib,并使用 Ananconda3-interpreter 从 PyCharm 运行。

我已经在 Anaconda Navigator 中检查了环境中是否安装了 matplotlib 2.0.2

一个最小的(非工作的)例子:

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.show()

返回以下错误:

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

这在 2 周前运行良好,但现在不行了。据我所知,我没有更改或更新任何内容。模块加载正确,但似乎是模块内容发生了变化?如果是这样:那是怎么发生的,我该如何解决?

最佳答案

在我的例子中,我可以通过将 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'

祝你好运!

引用资料

关于Python: "ModuleNotFoundError",但是安装了模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693420/

相关文章:

python - 在 iPython Notebook 中使用 matplotlib.pyplot

javascript - 如何访问 require 模块节点上的父变量

Python argparse : Does it have to return a list?

python - 如何从模型内部访问模型字段值?

python - 如何在同一张图中显示多个 matplotlib.pyplot 图?

javascript - opencart 价格范围 slider 扩展

python - 强制从 Python 标准库导入模块而不是默认的 PYTHONPATH

python - 如何从命令行激活 Anaconda 环境?

父类(super class) : how to access from subclass? 中带有关键字参数的 Python 2.7 函数

python - 如何在 Seaborn 的分组箱线图中添加垂直网格线?