关于python多版本共存的问题

python确实是一门比较神奇的语言,简单易学而功能强大。但是自从python3发布以来,就出现了了个问题,那就是版本之间的问题。2和3之间不兼容,所以,许多时候,电脑上往往共存多个版本,而且有的时候,还要各自使用。下面就我自己在windows和ubuntu上的实践,来提出一些解决办法,多指正!

1. 在windows上

需求来源于我使用的python版本本来是python3.6,但是在学习kivy在windows打包的时候,pyinstaller仅仅只兼容于python3.5,所以,只能够用3.5来打包,3.6来开发。

假设python3.5安装在D:\python3.5里面,python3.6安装在D:\python3.6里,他们的目录下都有个可执行程序python.exe,就是执行脚本的命令了。

method 1

我可克直接进入D:\python3.5下执行

python.exe --version

直接进入D:\python3.6下执行

python.exe --version

就是执行相应的python 的版本了;

如果我想要pip,安装不同的库在不同版本下,那么,在各自的目录下如此执行即可

python.exe -m pip install --upgrade pyinstaller

method 2

直接进入目录执行比较麻烦,那么,可以配置环境变量,但是配置了,执行python命令,只能指向一个版本,怎么破呢?

实际上哇,执行的python,就是执行python.exe。

所以,改名字,把python3.5的python.exe的改成python5.exe,把python3.6的python.exe改成python6.exe,然后,将他们两个所在目录分别加到环境变量里面去。

之后,执行

python5 --version

python5 -m pip install pymysql

就是3.5版本,

执行

python6 --version

python6 -m pip install pymysql

就是3.6版本的了。


2.在ubuntu上

linux上有默认的版本是2.7,要安装个python3,直接可以

sudo apt-get install python3

然后输入python --version还是python2版本的,这里,我使用的是全局的alias,由于ubutnu里面执行python,也是执行二进制文件,也可以路径执行的,比如:

/usr/local/bin/python3

所以,找准路径,修改

vim /etc/bash.bashrc

在最底部加:

alias python3 = /usr/local/bin/python3

之后退出保存,在执行

source /etc/bash_bashrc

就可以了,当然,这个方法一般,网上看见有修改环境变量的,还没有研究

补充于20170929:

后来发现有个神器更加好用:

virtualenv 大家可以研究下,实际很简单,只要安装了virtualenv(以python2的pip安装的,当然python3的pip安装也行),然后,假设:

python2安装的目录是D:\python2_install

python3的安装目录是D:\python3_install

python2的项目目录是D:\python2_project

python3的项目目录是D:\python3_project

只要执行命令:

virtualenv -p D:\python2_install\python D:\python2_project\ENV

virtualenv -p D:\python3_install\python D:\python3_project\ENV

//ENV就是项目对应的虚拟环境了

要执行哪个环境,直接运行:

ENV/Scripts/activate

就ok了,查看区别很简单,就看看pip的目录就好了

pip --version

如果要取消,就执行命令:

ENV\Script\deactive


补充于20180711:

要理解,python在linux上是以为文件的形式存在,可执行的python,是一个二进制的文件,大部分的自动安装的Python二进制文件的目录是:

cd /usr/bin

会发现,目录下可能会有许多版本的python的二进制文件,如,python2,python2.7,python3,python3.6,我们命令所执行的python,是这个目录下的名为python的一个软连接,而且,执行 ls -l | grep python 可以发现,它是由python2.7连接过来的软连接,所以,所用那个版本的python,直接删除原来的软连接python,然后重新创建一个指向目标版本的python的软连接就行了,命令如下:

rm /usr/bin/python

ln -s /usr/bin/python3.6 /usr/bin/python

如此,再执行

python -V

就发现,是3.6版本的python了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容