使用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
2 / 2
To page
avatar
xianliy
deepin
2018-05-13 17:55
#21
https://bbs.deepin.org/post/154644
蚂蚁笔记,内容直接拷贝排版不太好,可以查看:
http://blog.leanote.com/post/yihongyuelan@163.com/%E4%B ...

这个网站挂了
Reply View the author
avatar
yujinhehuan
deepin
2018-06-01 18:04
#22

不知为何报错
Reply View the author
avatar
yujinhehuan
deepin
2018-06-01 18:05
#23
Reply View the author
avatar
yujinhehuan
deepin
2018-06-01 18:06
#24

~/anaconda3/bin$ bash ./spyder
from: too many arguments
./spyder:行10: 未预期的符号 `(' 附近有语法错误
./spyder:行10: `    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])'
Reply View the author
2 / 2
To page