如何在 linux 系统下使多版本 Python 共存 您所在的位置:网站首页 查看系统python版本 如何在 linux 系统下使多版本 Python 共存

如何在 linux 系统下使多版本 Python 共存

2023-03-14 05:08| 来源: 网络整理| 查看: 265

系统自带 python

linux系操作系统,包括运行在 PC机上的ubuntu,运行在树莓派上的 Raspbian 等等,通常自带 python,而且不允许卸载。原因在于,Linux 的内部命令是依赖于 python 环境的。如果不小心把系统中的 python 路径 usr/bin/python 移除了,导致的后果就是,系统内部命令(例如 apt-get)无法使用。而打开终端后,终端里面直接显示缺少文件,所有的 .py 命令无法执行。

然而 Linux 下自带的 python,因为版本略低,大部分人都不会直接利用。这就需要我们重新安装高版本 python,并且不影响原 系统的使用。

以下所有操作,使用树莓派的 Raspbian 系统为例。

查看 python版本及安装路径

安装 python 之前,我们先看看系统自带了那些版本。 打开命令行,分别输入命令 which python 和 which python3(通常 python 命令指向 python 2.X,python3 命令 指向 python 3.X)。 Which 命令主要是用来查找系统PATH目录下的可执行文件。 此处可查看执行 python 命令的可执行文件存放的路径。

pi@raspberrypi:~ $ which python /usr/bin/python pi@raspberrypi:~ $ which python3 /usr/bin/python3

下面来看一下 python 具体的安装路径

pi@raspberrypi:~ $ python Python 2.7.13 (default, Sep 26 2018, 18:42:22) [GCC 6.3.0 20170516] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print(sys.path) ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-arm-linux-gnueabihf', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages'] pi@raspberrypi:~ $ python3 Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print(sys.path) ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-arm-linux-gnueabihf', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']重新安装 python

重新安装原版本 python,并将其覆盖。在线安装时,系统会提示已经安装了 python,无法继续。因此只能离线安装。

首先,更新树莓派软件源列表

$ sudo apt-get update

安装python依赖环境

$ sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev

已经安装了的依赖包会直接跳过。

下载离线安装包,解压缩。为避免覆盖原路径‘/usr/lib/ ’下的python,我们把安装包解压到路径‘/usr/local/’

$ wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz sudo tar -zxvf Python-2.7.14.tgz -C /usr/local/

之后是编译和安装。由于编译的过程比较长,我们可以将编译安装的几条命令合起来,等一段时间会提示安装成功.

$ cd /usr/local/Python-2.7.14 $ sudo ./configure --prefix=/usr/local/python2.7&& sudo make && sudo make install

prefix 参数是指把 python 安装在 /usr/local/python2.7 文件夹下

安装3.X版本的 python,操作类似

$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz $ sudo tar zxvf Python-3.6.1.tgz -C /usr/local/ $ cd /usr/local/Python-3.6.1 $ sudo ./configure --prefix=/usr/local/python3.6&& sudo make && sudo make install建立软连接

安装之后,应当将新的 python 与原 python 的可执行文件建立连接,这样我们才可以在命令行中使用新的 python

sudo rm -rf /usr/bin/python sudo ln -s /usr/local/python2.7/python /usr/bin/python sudo rm -rf /usr/bin/python3 sudo ln -s /usr/local/python3.6/bin/python3 /usr/bin/python3

安装成功后我们可以看一下 python 的版本

pi@raspberrypi:~ $ python --version Python 2.7.14

如果想把将 python 3.6.1 软链接到 python 也是可以的。 sudo rm -rf /usr/bin/python3 sudo ln -s /usr/local/python3.6/python /usr/bin/python

这样,在命令行中输入python时,就直接指向Python3.6.1了

确认 pip 安装路径

pip 是 python 的包管理器。使用 pip 命令可以很方便的查询、安装和卸载 python 的第三方包。使用 pip -V 命令可查看 pip 版本和包安装路径。

pi@raspberrypi:~ $ pip3 -V pip 9.0.1 from /usr/local/python3.6/lib/python3.6/site-packages (python 3.6)

如果 python 安装过程会重新安装 pip。如 pip 没有成功安装,就需要重新安装。

可使用命令行直接安装

sudo apt-get install python3-pip

也可手动离线安装,以下是操作方法。

首先安装setuptools

cd /usr/local/src/ wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6/ python3 setup.py build python3 setup.py install

然后安装pip3

cd /usr/local/src/ wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz tar -zxvf pip-8.0.2.tar.gz cd pip-8.0.2/ python3 setup.py build python3 setup.py install

python2.X 版本下的 pip 安装,只需把 python3 换成 python2 即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有