How do I upgrade to Python 3.6 with conda?
我是Conda软件包管理的新手,我想获取最新版本的Python以在代码中使用f字符串。 当前我的版本是(
1 | Python 3.5.2 :: Anaconda 4.2.0 (x86_64) |
如何升级到Python 3.6?
Anaconda尚未将python内部更新为3.6。
a)方法1
如果要在主要的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 |
我还不得不
- backports_abc
- 美丽的汤
- 火焰芯
根据系统上安装的软件包,您可能会遇到其他
1 | conda install python==3.6 |
这需要一段时间,之后出现一条消息指示
1 | conda install anaconda-client |
说它已经在那里。最后,按照指示进行
1 | conda update anaconda |
我是在Windows 10命令提示符下执行此操作的,但在Mac OS X中应该与此类似。
过去,我发现尝试就地升级非常困难。
注意:我对Anaconda的用例是作为一个多合一的Python环境。我不用理会单独的虚拟环境。如果使用
因此,如果您使用环境,则可能首先要导出环境。激活环境后,请执行以下操作:
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
这四个步骤对我有用。
我发现的最佳方法:
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) |
然后手动编辑第一行(
1 | conda env create -f new_env.yml |
您可能需要手动删除或更改一些软件包的版本标记,对于这些软件包,
我希望有一个内置的,更简单的方法...