使用Anaconda配置Deepin python环境(不影响系统python环境)
Tofloor
poster avatar
yihongyuelan
deepin
2018-03-25 20:05
Author

大家在使用python的时候都会纠结搭建环境的问题,随着python2.x系列将在2020年停止维护,越来越多的人开始将项目或者库迁移到python3.x上。就目前来说,deepin 15.5中的python主要环境还是python2.7,虽然附带了一个Python3.5rc的版本,但是,请大家一定不要讲默认的python版本修改为python3.5。 否则就会出现桌面服务启动,更新无法完成等问题。

卸载了python,系统崩溃了。。。。

deepin的python3.x版本切换改了python版本出问题了 急救,卸载python2.后这样了

这些“血淋淋”的例子给想学习python的童鞋带来了极大的障碍。那么有没有解决方案呢?答案是有的。

在网上搜索一下关键字“python 多版本共存”就能搜到不少答案,主流的方案包括:

1. pyenv

[size=1em] pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。(参考:http://einverne.github.io/post/2017/04/pyenv.html)

2. virturalenv

[size=1em]virtualenv创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库 (安装参考:https://www.jianshu.com/p/08c657bd34f1

3. anaconda

[size=1em]Anaconda 是 Python 的一个发行版,如果把 Python 比作 Linux,那么 Anancoda 就是 CentOS 或者 Ubuntu。它解决了Python开发者的两大痛点。
  • 第一:提供包管理,功能类似于 pip,Windows 平台安装第三方包经常失败的场景得以解决。
  • 第二:提供虚拟环境管理,功能类似于 virtualenv,解决了多版本Python并存问题。

当然以上三种是目前主流方案,并非只有以上三种方案,比如通过docker安装python。我们的目的是安装python环境,学习或者使用python,如果能不破坏或者影响原有系统的的python环境那自然是最好的。pyenv的原理是改变系统环境变量,动态的控制;virturalenv是根据项目不同,使用不同的环境;anaconda是对python环境做了一层包装,不会和系统又任何冲突;docker的话就另当别论了,完全的虚拟环境,更不会和系统有任何瓜葛;

这些所有的方法没有优劣好坏之分,只有适合自己的选择。我的目的是安装python环境并且不影响系统环境,同时能够快速在不同的版本之间切换,各个版本之间的安装包不要有任何影响,不同的项目可以指定不同的python版本。

据此,我选择使用anaconda来搭建python2.7和python3.6的环境。去anaconda下载最新的anaconda3安装包https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh。当然如果考虑到速度慢,那么国内有清华的镜像,大家可以去https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载。

安装方法很简单,打开终端执行bash ./Anaconda3-5.1.0-Linux-x86_64.sh 中途会有提示安装到哪个目录,最后会询问是否将其设为添加到~/.bashrc中,这里注意选择no。如果此时选择yes,那么anaconda3自带的python3.6会取代系统的python 2.7.13+。

关于anaconda的介绍,有兴趣的朋友自行去网上搜索吧。安装完成后设置一下国内清华的源,后续安装python依赖包的时候会快些。

找到anaconda的安装目录(我的是/home/seven/tools/anaconda3),并进入bin目录,打开终端执行以下代码:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes


完成之后开始创建不同的python环境:

./conda create -n ana_python27 python=2.7 beautifulSoup4

在anaconda环境中创建一个ana_python27的环境,使用python2.7版本,并且安装beautifulSoup4包。

./conda create -n ana_python36 python=3.6 requests

在anaconda环境中创建一个ana_python26的环境,使用python3.6版本,并且安装requests包。

./conda info -e 查看当前所有的环境,*base为当前环境。

后续如果需要在不同的环境中安装不同的依赖包,可以使用以下command:

./conda install --name ana_python27 threadpool


环境搭建完成后,如果是command line的方式使用python,可以给anaconda3/envs/ana_python27/bin目录下的python文件添加到PATH中,或者直接alias使用。

因为我需要使用IDE的方式开发,使用的Pycharm,所以需要在Pycharm中不同的项目设置不同的python环境:


Reply Favorite View the author
All Replies
1 / 2
To page
avatar
yihongyuelan
deepin
2018-03-25 20:07
#1
蚂蚁笔记,内容直接拷贝排版不太好,可以查看:
http://blog.leanote.com/post/yihongyuelan@163.com/%E4%BD%BF%E7%94%A8Anaconda%E9%85%8D%E7%BD%AEDeepin-python%E7%8E%AF%E5%A2%83
Reply View the author
avatar
jerry79
deepin
2018-03-25 21:53
#2
点赞~!!!!!
Reply View the author
avatar
fuyao
deepin
2018-03-25 22:14
#3
我也是用anaconda,安装很方便
Reply View the author
avatar
int_max
deepin
2018-03-26 03:30
#4
直接装个3.7就好了呀
Reply View the author
avatar
int_max
deepin
2018-03-26 03:30
#5
2.x和3.x可以共存啊
Reply View the author
avatar
yihongyuelan
deepin
2018-03-26 05:21
#6
https://bbs.deepin.org/post/154644
2.x和3.x可以共存啊

共存没问题,如果自己不小心讲系统的python环境弄坏,那就是“杯具”了
Reply View the author
avatar
yihongyuelan
deepin
2018-03-26 05:22
#7
https://bbs.deepin.org/post/154644
直接装个3.7就好了呀

本帖的目的是 独立环境 不会互相影响,类似于docker,但个人觉得比docker方便些
Reply View the author
avatar
yihongyuelan
deepin
2018-03-26 05:23
#8
https://bbs.deepin.org/post/154644
我也是用anaconda,安装很方便

使用anaconda的目的就是为了不破坏系统环境,随意折腾。这一点和docker类似,但个人觉得anaconda比docker方便些
Reply View the author
avatar
mhlan
deepin
2018-03-26 05:49
#9
那如果要在anaconda搭建的python环境中安装新的包,怎么在终端切换呢?
Reply View the author
avatar
fuyao
deepin
2018-03-26 05:56
#10
https://bbs.deepin.org/post/154644
使用anaconda的目的就是为了不破坏系统环境,随意折腾。这一点和docker类似,但个人觉得anaconda比docker ...

不过有一个问题,当linux安装anaconda并设置环境变量后,其他windows电脑用xmanager连接这台linux会出错,如果不需要远程桌面的话就无所谓了。
Reply View the author
avatar
yihongyuelan
deepin
2018-03-26 14:17
#11
https://bbs.deepin.org/post/154644
那如果要在anaconda搭建的python环境中安装新的包,怎么在终端切换呢?

./conda install --name ana_python27 threadpool
可以在anaconda的 Python27环境 安装threadpool的包。
需要将andaconda/envs/ana_python27/bin/python 添加到系统PATH中,就可以直接使用了
Reply View the author
avatar
yihongyuelan
deepin
2018-03-26 14:18
#12
https://bbs.deepin.org/post/154644
不过有一个问题,当linux安装anaconda并设置环境变量后,其他windows电脑用xmanager连接这台linux会出错 ...

这个问题确实没有遇到,我没有用远程桌面。
Reply View the author
avatar
whrszzc
deepin
2018-03-26 17:48
#13
用过,有的包conda找不到,安装麻烦,不如pyenv+virtualenv方便,每个项目一个环境
Reply View the author
avatar
yihongyuelan
deepin
2018-03-27 14:57
#14
https://bbs.deepin.org/post/154644
用过,有的包conda找不到,安装麻烦,不如pyenv+virtualenv方便,每个项目一个环境 ...

这也是一种思路,conda找不到的可以使用pip安装。 目的都是一个尽量不要互相影响,做好隔离。
Reply View the author
avatar
qianshui
deepin
2018-03-27 17:14
#15
昨天还在试着用anaconda,今天就有这个帖子了,太好了
Reply View the author
avatar
joycui
deepin
2018-03-27 18:42
#16
我是直接sudo apt install python3.6
Reply View the author
avatar
yihongyuelan
deepin
2018-03-28 05:37
#17
https://bbs.deepin.org/post/154644
我是直接sudo apt install python3.6

anaconda和docker的目的类似,主要是隔离
Reply View the author
avatar
yihongyuelan
deepin
2018-03-28 05:38
#18
https://bbs.deepin.org/post/154644
昨天还在试着用anaconda,今天就有这个帖子了,太好了

稍加配置还是比较方便的
Reply View the author
avatar
186******39
deepin
2018-03-29 23:14
#19
内容很棒,颜色辣眼睛……谢谢啦
Reply View the author
avatar
shenweiyan
deepin
2018-03-30 01:22
#20
https://bbs.deepin.org/post/154644
蚂蚁笔记,内容直接拷贝排版不太好,可以查看:
http://blog.leanote.com/post/yihongyuelan@163.com/%E4%B ...

点个赞!
Reply View the author
1 / 2
To page