如何使用 conda 升级到 Python 3.6?

Posted

技术标签:

【中文标题】如何使用 conda 升级到 Python 3.6?【英文标题】:How do I upgrade to Python 3.6 with conda? 【发布时间】:2017-05-22 23:56:41 【问题描述】:

我是 Conda 包管理的新手,我想获得最新版本的 Python 以在我的代码中使用 f-strings。目前我的版本是(python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

如何升级到 Python 3.6?

【问题讨论】:

我认为,第二个答案是更好的答案,尤其是对于那些拥有“主”/“默认”环境的人来说,其中最新最好的东西会不断更新。 删除原始环境,使用具有原始名称的正确 python 版本创建新环境,然后重新运行安装脚本,例如install.sh 【参考方案1】:

Anaconda 内部没有将 python 更新到 3.6。

a) 方法一

    如果您想更新,请输入conda update python

    更新anaconda类型conda update conda

    如果你想在 3.5 到 3.6 等主要 python 版本之间升级,你必须这样做

     conda install python=$pythonversion$
    

b) 方法 2 - 创建一个新环境(更好的方法)

conda create --name py36 python=3.6

c) 获取绝对最新的 python(撰写本文时为 3.6.5)

conda create --name py365 python=3.6.5 --channel conda-forge

你可以从here看到这一切

另外,请参考这里的力量upgrading

编辑:Anaconda 现在有一个 Python 3.6 版本 here

【讨论】:

除非 Continuum 改变了 conda 的运行方式,否则您无法通过 conda update python 升级主要的 Python 版本。见这里:conda.pydata.org/docs/py2or3.html#update-or-upgrade-python conda install python=$pythonversion$ 例如conda install python=3.6 conda update python 刚刚把我从 3.6.5 带到了 3.7.0。整洁! FYI 方法 a) 也适用于在不同版本的 python 之间进行更改,只要它不会破坏 venv 中的任何依赖项 @fredrik conda update python 阻止了我的 conda 安装。【参考方案2】:

创建新环境将安装 python 3.6:

$ conda create --name 3point6 python=3.6
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/dstansby/miniconda3/envs/3point6:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0     
    pip:        9.0.1-py36_1 
    python:     3.6.0-0      
    readline:   6.2-2        
    setuptools: 27.2.0-py36_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py36_0
    xz:         5.2.2-1      
    zlib:       1.2.8-3 

【讨论】:

如果您的 conda 安装适用于 Python 2.7,则 conda create 将创建 2.7 版本。将命令更改为conda create --name 3point6 python=3(在末尾添加=3)生成python3版本。 确实会的。我已经更改了我的答案以指定 python 3.6! 您的解决方案让我不得不从头开始重新安装所有旧软件包。你应该提到如何解决这个问题。标题说升级,所以这是对一个好的答案的合理期望。【参考方案3】:

我找到了this page,其中包含将 Anaconda 升级到 Python 的主要更新版本(来自 Anaconda 4.0+)的详细说明。首先,

conda update conda
conda remove argcomplete conda-manager

我也不得不conda remove一些不在官方列表中的包:

backports_abc 美丽的汤 火焰核心

根据您系统上安装的软件包,您可能会收到额外的UnsatisfiableError 错误 - 只需将这些软件包添加到删除列表即可。接下来,安装Python的版本,

conda install python==3.6

这需要一段时间,然后有一条消息指示conda install anaconda-client,所以我做了

conda install anaconda-client

它说它已经在那里了。最后,按照指示,

conda update anaconda

我在 Windows 10 命令提示符下执行此操作,但在 Mac OS X 中应该类似。

【讨论】:

页面链接现已损坏。【参考方案4】:

过去,我发现尝试就地升级非常困难。

注意:我对 Anaconda 的用例是作为一体化 Python 环境。我不打扰单独的虚拟环境。如果您使用conda 创建环境,这可能具有破坏性,因为conda 在您的Anaconda/envs 目录中创建带有硬链接的环境。

所以如果你使用环境,你可能首先要export your environments。激活环境后,执行以下操作:

conda env export > environment.yml

备份您的环境后(如有必要),您可以删除旧的 Anaconda(卸载 Anaconda 非常简单):

$ rm -rf ~/anaconda3/

并通过下载新的 Anaconda 来替换它,例如Linux,64 位:

$ cd ~/Downloads
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh 

(see here for a more recent one),

然后执行它:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 

【讨论】:

【参考方案5】:

我使用的是 Mac OS Mojave

这 4 个步骤对我有用。

    conda update conda conda install python=3.6 conda install anaconda-client conda update anaconda

【讨论】:

它有效。求解环境时会使用“灵活求解”。谢谢。【参考方案6】:

如果您想在现有环境中升级 Python 版本,请先使用conda activate <env_name> 激活它,然后执行:

conda install -c anaconda python=<version>

您可能还需要更新依赖项

conda update --all

【讨论】:

这对我来说效果很好(从 3.6 -> 3.9 升级到包含许多包的环境中)。不确定所有其他复杂的答案是什么。谢谢。【参考方案7】:

唯一可行的解​​决方案是使用您想要的名称创建一个新的 conda env(不幸的是,您将删除旧的以保留名称)。然后使用新的 python 版本创建一个新的环境,并使用 conda/pip 安装(或 yaml 文件或任何您用来满足要求的文件)重新运行您的 install.sh 脚本:

conda remove --name original_name --all
conda create --name original_name python=3.8
sh install.sh  # or whatever you usually do to install dependencies

conda install python=3.8 对我不起作用。另外,为什么要3.6?用这个词前进;)


注意以下不起作用:

如果您想更新以前环境的 conda 版本,您还可以执行以下操作(比它应该的更复杂,因为 you cannot rename envs in conda):

    为您当前的环境创建一个临时的新位置:
conda create --name temporary_env_name --clone original_env_name
    删除原始环境(以便新环境可以使用该名称):
conda deactivate
conda remove --name original_env_name --all # or its alias: `conda env remove --name original_env_name`
    然后使用您想要的 python 版本创建新的空环境并克隆原始环境:
conda create --name original_env_name python=3.8 --clone temporary_env_name

【讨论】:

【参考方案8】:

这就是我在 anaconda 和 windows 10 中获得的方式(因为目前没有直接支持 - 将来肯定会)python 3.9注意:我需要额外的包所以安装它们,只安装你需要的东西

conda create --name e39 python=3.9 --channel conda-forge

更新

Python 3.9 可用于 conda,请使用以下命令

conda create --name python=3.9

它会简单地创建你的 python 3.9 虚拟环境。

【讨论】:

【参考方案9】:

我发现的最佳方法:

source activate old_env
conda env export > old_env.yml

然后用这样的方式处理它:

with open('old_env.yml', 'r') as fin, open('new_env.yml', 'w') as fout:
    for line in fin:
        if 'py35' in line:  # replace by the version you want to supersede
            line = line[:line.rfind('=')] + '\n'
        fout.write(line)

然后手动编辑第一行 (name: ...) 和最后一行 (prefix: ...) 以反映您的新环境名称并运行:

conda env create -f new_env.yml

您可能需要手动删除或更改一些包的版本 pin,其中来自 old_env 的固定版本被发现与新的 python 版本不兼容或丢失。

我希望有一个内置的、更简单的方法...

【讨论】:

以上是关于如何使用 conda 升级到 Python 3.6?的主要内容,如果未能解决你的问题,请参考以下文章

在 conda 中将 python 从 3.5 更新到 3.6

当我的包是 Python 3.6 时,为啥 conda 要将所有内容降级到 Python 2.7?

使用conda 对gcc进行升级 (sonicparanoid)

使用 conda 升级到 python 3.8

用anaconda升级Spyder到4.0.1后,打开Spyder还是老版本?

conda中新建环境myenv并下载安装 Python 3.6