关于macos:如何使用conda升级到Python 3.6?

How do I upgrade to Python 3.6 with conda?

我是Conda软件包管理的新手,我想获取最新版本的Python以在代码中使用f字符串。 当前我的版本是(python -V):

1
Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

如何升级到Python 3.6?


Anaconda尚未将python内部更新为3.6。

a)方法1

  • 如果要更新,请键入conda update python
  • 要更新anaconda,请输入conda update anaconda
  • 如果要在主要的python版本(例如3.5到3.6)之间进行升级,则必须

    1
    conda install python=$pythonversion$

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

    1
    conda create --name py36 python=3.6

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

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

    您可以从这里看到所有这些

    另外,请参阅此以进行强制升级

    编辑:Anaconda现在在这里具有Python 3.6版本


    创建一个新环境将安装python 3.6:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $ 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


    我在此页面上找到了有关将Anaconda升级到Python的主要更新版本(从Anaconda 4.0+)的详细说明。第一,

    1
    2
    conda update conda
    conda remove argcomplete conda-manager

    我还不得不conda remove一些不在官方清单中的软件包:

    • backports_abc
    • 美丽的汤
    • 火焰芯

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

    1
    conda install python==3.6

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

    1
    conda install anaconda-client

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

    1
    conda update anaconda

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


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

    注意:我对Anaconda的用例是作为一个多合一的Python环境。我不用理会单独的虚拟环境。如果使用conda创建环境,则可能具有破坏性,因为conda创建的环境在Anaconda/envs目录中具有硬链接。

    因此,如果您使用环境,则可能首先要导出环境。激活环境后,请执行以下操作:

    1
    conda env export > environment.yml

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

    1
    $ rm -rf ~/anaconda3/

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

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

    (有关最新信息,请参见此处),

    然后执行它:

    1
    $ bash Anaconda3-4.3.0-Linux-x86_64.sh

    我正在使用Mac OS Mojave

    这四个步骤对我有用。

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

  • 我发现的最佳方法:

    1
    2
    source activate old_env
    conda env export > old_env.yml

    然后使用以下方法进行处理:

    1
    2
    3
    4
    5
    6
    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('=')] + '\
    '

            fout.write(line)

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

    1
    conda env create -f new_env.yml

    您可能需要手动删除或更改一些软件包的版本标记,对于这些软件包,old_env的固定版本与新python版本不兼容或丢失。

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