2017-04-21 24 views
4

我剛安裝的Python 3.6和運行終端,試圖import任何我已經安裝了3.5模塊(RSA,matplotlib,附魔,...)和它返回:如果我安裝了新的Python語言,我應該重新安裝每個模塊嗎?

ModuleNotFoundError: No module named 'module_name' 

然而,他們仍然可以工作當我運行Python 3.5。我該怎麼辦?

+0

不,他們不會自動發生,無論是重新安裝或(複製粘貼站點包文件夾) - 別推薦這樣做 – abccd

回答

0
在終端或CMD類型

pip install module_name 
+1

請編輯您的答案,包括一些解釋。僅有代碼的答案對未來SO讀者的教育很少。您的回答是在低質量的審覈隊列中。 – mickmackusa

3

如果你安裝了,你會不會你沒有安裝已爲舊版本的模塊不同的Python版本。

您安裝的每個Python版本都有自己的工作目錄,以及它自己的模塊。一般來說,爲特定版本的Python安裝的模塊不能用於其他版本,比較老的或較新的版本。這是因爲Python模塊通常需要預編譯文件和特定於版本的功能才能在特定版本的Python上工作。例如,你不能在Python 3.6上爲Python 2.7使用模塊,因爲很多東西從版本2改爲3.

這意味着你將不得不重新安裝你需要的任何模塊Python版本再次,這很容易做到using PIP運行pythonX.Y,其中X.Y是版本號,這樣的:

python2 -m pip install SomePackage # default Python 2 
python2.7 -m pip install SomePackage # specifically Python 2.7 
python3 -m pip install SomePackage # default Python 3 
python3.6 -m pip install SomePackage # specifically Python 3.6 

還要注意,複製舊的站點包文件夾噸他和重裝模塊一樣,不應該這樣做。

+0

點子工作得很好! –

+0

可能是OP有用的解釋「爲什麼」,值得注意的是,雖然有很多的純Python源是正確_will_上兩個版本的工作,也有二進制(C等)包含特定版本的編譯代碼模塊(感覺免費盜取,並編輯它:D) –

+0

@AnthonySottile你是對的,謝謝! –