Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我安装了新的Python版本,是否应该重新安装每个模块?_Python_Macos_Python Module - Fatal编程技术网

如果我安装了新的Python版本,是否应该重新安装每个模块?

如果我安装了新的Python版本,是否应该重新安装每个模块?,python,macos,python-module,Python,Macos,Python Module,我刚刚安装了Python 3.6并运行了terminal,尝试导入我已经在3.5中安装的任何模块(rsa、matplotlib、enchant等),它返回: ModuleNotFoundError:没有名为'module\u name'的模块 但是,当我运行Python3.5时,它们仍然可以工作。我应该怎么做?在终端或cmd类型中 pip install module_name 如果您安装了不同的Python版本,那么您将不拥有您为旧版本安装的模块 您安装的每个Python版本都有自己的工作

我刚刚安装了Python 3.6并运行了terminal,尝试导入我已经在3.5中安装的任何模块(rsa、matplotlib、enchant等),它返回:

ModuleNotFoundError:没有名为'module\u name'的模块

但是,当我运行Python3.5时,它们仍然可以工作。我应该怎么做?

在终端或cmd类型中

pip install module_name

如果您安装了不同的Python版本,那么您将拥有您为旧版本安装的模块

您安装的每个Python版本都有自己的工作目录和模块。一般来说,为特定版本的Python安装的模块不能被其他版本使用,无论是旧版本还是新版本。这是因为Python模块通常需要预编译文件和特定于版本的特性才能在特定版本的Python上工作。例如,您不能在Python3.6上使用Python2.7的模块,因为很多东西从版本2更改为版本3

这意味着您必须再次在新版Python上重新安装所需的任何模块,这可以通过运行
pythonX.Y
轻松完成,其中
X.Y
是版本号,如下所示:

python2-mpipinstallsomepackage#默认的python2
python2.7-mpip安装SomePackage#特别是python2.7
python3-mpip安装SomePackage#默认的python3
python3.6-mpip安装SomePackage#特别是python3.6


另外请注意,复制旧的站点包文件夹与重新安装模块不一样,不应该这样做。

不,它们不会自动发生,要么重新安装,要么(复制粘贴站点包文件夹)-不建议这样做可能有助于OP解释“为什么”,值得注意的是,虽然有许多纯python源代码可以在两个版本上正常工作,但也有二进制(C等)模块包含特定于版本的编译代码(可以随意窃取这些代码,并在:D中编辑)
venv
作为一个命令与Post3.5 python一起提供,用于管理每个项目和每个python版本的模块依赖关系。可能值得一提/简要概述。请编辑您的答案,包括一些解释。只有代码的答案对教育未来的读者几乎没有什么作用。你的答案因质量低劣而被列入了审核名单。