Python: “ModuleNotFoundError”, but module is installed?

三世轮回 提交于 2019-12-31 03:12:06

问题


I realize this seems like a generic question, but all answers pointed to having two simultanious python installations - I already uninstalled the other one.

Currently I run my code from PyCharm 2017.1.5 (windows 10) with Python interpreter set as Python 3.6.1 (C:\Anaconda3\python.exe), i.e. I installed Anaconda3, which includes the matplotlib, and run from PyCharm using the Ananconda3-interpreter.

I've checked in Anaconda Navigator that matplotlib 2.0.2 is installed in the environment.

A minimal (non-working) example:

import matplotlib.pyplot as plt

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

Returns the following error:

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

This ran fine 2 weeks ago, but not now. To my knowledge, I didn't change or update anything. The module loads correctly, but it seems to be a change in the module content? If so: How did that happen and how can I fix it?


回答1:


@ImportanceOfBeingErnest lead me in the right direction. I post my solution here s.t. others may find the answer. The problem was a corrupted disk sector - an unlikely event of chance.

The problem was indeed in the matplotlib-package itself. Retrospectively, pointers to the issue were that errors in pre-distributed packages should not exist. If they do, external circumstances must have corrupted and the problem is not with the Python-installation itself.

I uninstalled matplotlib through Anaconda Prompt with conda remove matplotlib and re-installed with conda install matplotlib. This gave me this error:

(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')

Before @Ernest's comment, I thought it maybe had to do with non-ASCII in PATH or similar.

Instead I tried to reinstall Anaconda3 completely, restarted and found that part of the Anaconda3-folder weren't removed (the one containing the matplotlib).

Deleting it manually gave a Windows error 0x80070570. Following this post on ServerFault (the comment to OP) I ran a check and afterwards a repair from Windows Explorer GUI: Right-click on the drive in This PC --> Properties --> Tab Tools --> Check (repair appears if any errors are found).

After some restarts, reinstalling Anaconda3 from scratch and restarting again, I was able to run my project again!




回答2:


It is difficult to answer this question directly, however, I have seen a large amount of issues in corporate Windows environments with PyCharm and Anaconda these are some of the issues you may be having

  1. Check you PATH is correctly pointing to all Anaconda locations

    import sys
    sys.path
    
  2. Check that your files have not been migrated to C:\Users\username\AppData\Roaming by your IT team

  3. Purge your system for any python distributions. There may be software distributions that you use internally that package their own python distribution. This can often be included in the PATH. Another example could be installing Anaconda to your C:\ but also having it already installed in Users\Local\AppData or 'C:\Program Files' months before and forgotten!

A good way of directly debugging your problem would be to navigate to the following directory in ipython

C:\Anaconda3\lib\site-packages\matplotlib

and they try import matplotlib.markers

If this fails then you could then try

import matplotlib
matplotlib.__file__

you should check that this result gives

'C:\\Anaconda3\\lib\\site-packages\\matplotlib\\__init__.pyc'

as most likely there will be another matplotlib version installed that is taking precedence. This will then fall under one of the issues above to correct.




回答3:


PyCharm requires installing packages available in the interpreter.

You can find matplotlib and other packages available for an install using the following steps:

  1. Open the File--Settings--Project--Project Interpreter menu.
  2. You should see all packages you currently have installed, and matplotlib should be missing from this list.
  3. Click the + (add) button to the right and install the matplotlib package.
  4. Once complete, close the top dialog box, and you should see matplotlib in the list of installed packages.


来源:https://stackoverflow.com/questions/45693420/python-modulenotfounderror-but-module-is-installed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!