如何使用conda升级到Python 3.6?

时间:2017-01-08 17:56:44

标签: python macos anaconda conda

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

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

我如何升级到Python 3.6?

8 个答案:

答案 0 :(得分:173)

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

a)方法1

  1. 如果您想要更新,请输入conda update python
  2. 更新anaconda类型conda update anaconda
  3. 如果你想在主要的python版本(如3.5到3.6)之间升级,你必须要做

    conda install python==$pythonversion$
    
  4. 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

答案 1 :(得分:35)

创建新环境将安装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 

答案 2 :(得分:20)

我找到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中应该类似。

答案 3 :(得分:15)

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

注意:我对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 

答案 4 :(得分:1)

唯一有效的解决方案是使用您想要的名称创建一个新的 conda env(不幸的是,您将删除旧的以保留名称)。然后使用新的 python 版本创建一个新的 env,并使用 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 比应该的更复杂):

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

答案 5 :(得分:0)

我找到的最佳方法:

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

您可能需要手动删除或更改一些软件包的版本引脚,而这些软件包的old_env的固定版本与新python版本不兼容或缺失。

我希望有一种内置的,更简单的方法......

答案 6 :(得分:0)

这就是我要获取的方式(由于目前尚无直接支持,将来肯定会)蟒蛇3.9在anaconda和Windows 10中
注意:我需要其他软件包,因此请安装它们,仅安装所需的内容

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

答案 7 :(得分:0)

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

conda install -c anaconda python=<version>

您可能还需要使用

更新依赖项
conda update --all