如果我安装了新的Python语言,我应该重新安装每个模块吗?

问题描述:

我刚安装的Python 3.6和运行终端,试图import任何我已经安装了3.5模块(RSA,matplotlib,附魔,...)和它返回:如果我安装了新的Python语言,我应该重新安装每个模块吗?

ModuleNotFoundError: No module named 'module_name' 

然而,他们仍然可以工作当我运行Python 3.5。我该怎么办?

+0

不,他们不会自动发生,无论是重新安装或(复制粘贴站点包文件夹) - 别推荐这样做 – abccd

在终端或CMD类型

pip install module_name 
+1

请编辑您的答案,包括一些解释。仅有代码的答案对未来SO读者的教育很少。您的回答是在低质量的审核队列中。 – mickmackusa

如果你安装了,你会不会你没有安装已为旧版本的模块不同的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你是对的,谢谢! –