美文网首页
关于python多版本共存的问题

关于python多版本共存的问题

作者: 某言 | 来源:发表于2017-08-03 10:23 被阅读0次

    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了。

    相关文章

      网友评论

          本文标题:关于python多版本共存的问题

          本文链接:https://www.haomeiwen.com/subject/lkgulxtx.html