我意识到这似乎是一个普遍的问题,但所有答案都指向了两个同时发生的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周前运行良好,但现在不行。据我所知,我没有改变或更新任何东西。模块正确加载,但它似乎是模块内容的变化?如果是这样:这是怎么发生的,我该如何解决?
答案 0 :(得分:2)
@ImportanceOfBeingErnest带领我朝着正确的方向前进。我在这里发布我的解决方案。其他人可能会找到答案。问题是磁盘扇区损坏 - 不太可能发生。
问题确实在matplotlib
- 包本身。回顾一下,指向该问题的指标是预先分发的包中的错误不应该存在。如果他们这样做,外部环境必定已经损坏,问题不在于Python安装本身。
我使用matplotlib
通过 Anaconda提示卸载了conda remove 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资源管理器GUI 进行修复:右键单击此PC 中的驱动器 - &GT; 属性 - &gt;标签工具 - &gt; 检查(如果发现任何错误,则会出现修复)。
重新启动后,从头开始重新安装 Anaconda3 并重新启动,我又能够运行我的项目了!
答案 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/
对于Windows安装python
,也应如此。
如果使用虚拟环境,则可以编辑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'
祝你好运!
答案 2 :(得分: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
版本,该版本优先。这将属于上述问题之一,以便纠正。
答案 3 :(得分:0)
PyCharm需要安装解释器中可用的包。
您可以使用以下步骤找到可用于安装的matplotlib和其他软件包:
答案 4 :(得分:0)
使用pip时遇到相同类型的错误。创建了新的VENV并执行了解决我问题的应用agaist