如果我安装新版本的 Python,是不是应该重新安装每个模块?
Posted
技术标签:
【中文标题】如果我安装新版本的 Python,是不是应该重新安装每个模块?【英文标题】:Should I reinstall each module again if I install a new vesion of Python?如果我安装新版本的 Python,是否应该重新安装每个模块? 【发布时间】:2017-09-18 15:39:41 【问题描述】:我刚刚安装了 Python 3.6 并运行了终端,尝试 import
我已经在 3.5 中安装的任何模块(rsa、matplotlib、附魔,...)并返回:
ModuleNotFoundError: No module named 'module_name'
但是,当我运行 Python 3.5 时,它们仍然有效。我该怎么办?
【问题讨论】:
不,它们不会自动发生,要么重新安装它们,要么(复制粘贴站点包文件夹)-不建议这样做 【参考方案1】:如果您安装不同的 Python 版本,您将不会拥有您已经为旧版本安装的模块。
您安装的每个 Python 版本都有自己的工作目录和自己的模块。为特定版本的 Python 安装的模块通常不能被其他版本(旧版本或新版本)使用。这是因为 Python 模块通常需要预编译文件和特定于版本的功能才能在特定版本的 Python 上工作。例如,您不能在 Python 3.6 上使用 Python 2.7 的模块,因为从版本 2 到版本 3 发生了很多变化。
这意味着您必须再次在新版本的 Python 上重新安装所需的任何模块,这可以通过运行 pythonX.Y
的 using PIP 轻松完成,其中 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
另请注意,复制旧的 site-package 文件夹不与重新安装模块是一回事,而且永远不应该这样做。
【讨论】:
可能对 OP 解释“为什么”有用,特别是虽然有很多纯 python 源将在两个版本上都能正常工作,但也有二进制 ( C等)包含版本特定编译代码的模块(随意窃取,并在:D中编辑)venv
作为 3.5 后 python 的命令来管理每个项目和每个 python 版本的模块依赖关系。可能值得一提/简要总结。 docs.python.org/3/library/venv.html【参考方案2】:
在终端或 cmd 类型中
pip install module_name
【讨论】:
请编辑您的答案以包含一些解释。仅代码的答案对教育未来的 SO 读者几乎没有作用。您的答案因质量低劣而在审核队列中。以上是关于如果我安装新版本的 Python,是不是应该重新安装每个模块?的主要内容,如果未能解决你的问题,请参考以下文章
pycharm中python解释器更换版本需要重新安装第三方库吗?
如果我在 API 级别 21 (5.0) 上制作应用程序,它是不是适用于较新版本的 android?
如果在设备上部署了新版本的应用程序,是不是可以保留旧版本的数据?