2017-08-15 179 views
1

我意識到這似乎是一個普遍的問題,但所有的答案都指向了兩個同時安裝的python - 我已經卸載了另一個。Python:「ModuleNotFoundError」,但模塊已安裝?

目前我從與Python解釋設置爲Python 3.6.1 (C:\Anaconda3\python.exe),即我安裝Anaconda3,它包括matplotlib運行我代碼PyCharm 2017年1月5日(窗10),以及使用該Ananconda3PyCharm運行-interpreter。

我已登記蟒蛇導航儀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個星期前,但不是現在。據我所知,我沒有改變或更新任何東西。模塊正確加載,但它似乎是模塊內容的變化?如果是這樣的話:那是怎麼發生的?我該如何解決?

+1

看來,在安裝或卸載matplotlib過程中出現了問題。你嘗試刪除matplotlib並重新安裝它嗎? – ImportanceOfBeingErnest

+0

然後我得到'(C:\ Anaconda3)C:\ Users \ Rasmus> conda install matplotlib [...] 錯誤conda.core.link:_execute_actions(337):安裝包默認值時發生錯誤:: matplotlib -2.0.2-np112py36_0' 。 OSError(22,'無效參數') 試圖回滾。 (22,'Invalid argument')' https:// github。com/conda/conda/issues/5432表明這可能是32位和64位Python或字符集錯誤之間的錯誤。我在'PATH'中不使用非ascii。我會嘗試從頭重新安裝... –

+0

謝謝@ImportanceOfBeingErnest!根據您的靈感,我發現了錯誤(硬盤損壞)並在下面發佈了我的解決方案。 –

回答

1

@ImportanceOfBeingErnest引導我走向正確的方向。我在這裏發佈我的解決方案s.t.其他人可能會找到答案。問題是磁盤部分損壞 - 不太可能發生偶然事件。

問題確實在於matplotlib -package本身。回顧過去,指出問題的原因是預分發包中的錯誤不應該存在。如果他們這樣做,外部環境必然已經損壞,問題不在於Python安裝本身。

我卸載matplotlib通過蟒蛇提示conda remove matplotlibconda 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') 

之前@歐內斯特的評論,我認爲這也許曾與non-ASCII in PATH or similar做。

相反,我試圖重新安裝Anaconda3完全,重新啓動,並發現Anaconda3文件夾的那部分未刪除(含有matplotlib的那一個)。

手動刪除它給Windows錯誤0x80070570。繼this post on ServerFault(以OP評論)我跑了檢查,之後從Windows資源管理器GUI修復:在驅動器上右鍵單擊該PC - >屬性 - >標籤工具 - >檢查修復如果發現任何錯誤將會出現)。

經過一番重新啓動,從頭重新安裝Anaconda3並重新啓動,我能夠再次運行我的項目!

1

直接回答這個問題,這是困難的,但是,我已經看到了大量的在企業Windows環境與PyCharm和Anaconda相關的問題,這些都是一些問題,你可以是具有

  1. 檢查你PATH已正確指向所有蟒蛇位置

    import sys 
    sys.path 
    
  2. 檢查你的文件沒有被你的IT團隊遷移到C:\Users\username\AppData\Roaming

  3. 清除系統中的任何python分配。您可能會使用內部使用的軟件發行版,它們包裝自己的python發行版。這通常可以包含在PATH中。另一個例子可能是安裝蟒蛇你的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版本,因此優先安裝。然後,這將落在上述問題之一以糾正。

+0

我想一個指針說明爲什麼你的答案(在這個特定情況下)是不可用的,就是這個錯誤只在'matplotlib'的一小部分中。如果不是@Ernest的評論,你答案的最後一部分可能會幫助我一點(可能導致導入失敗)。 –

+0

是的我試着讓我的答案通用於其他問題:) –

0

PyCharm需要在解釋器中安裝可用包。

你可以找到matplotlib等封裝爲安裝使用以下步驟:

  1. 打開文件 - 設置 - 項目 - 項目翻譯菜單。
  2. 您應該看到您當前安裝的所有軟件包,並且matplotlib應該從此列表中缺失。
  3. 單擊右側的+(添加)按鈕並安裝matplotlib軟件包。
  4. 一旦完成,關閉頂部對話框,你應該看到已安裝軟件包列表中的matplotlib。
+0

由於問題所述,問題不是一個未安裝的軟件包,而是一個子軟件包的損壞! –