1 查看 python安装路径和版本

查看路径:

which python

查看版本:

python --version

2 ubuntu下python一般安装目录说明

javascript:void(0)

在ubuntu下pip需要自行安装
可执行命令sudo apt-get install python3-pip安装python3.x的pip
或者sudo apt-get install python-pip安装python2.x的pip
注:安装前最好sudo apt-get update一下

可通过pip3 和 pip分别为python3.5和python2.7安装各自的库

python的可执行文件的目录一般在
/usr/bin下,通过apt-get安装的应用一般会在这个目录
自行安装的一般在/usr/local/bin下

python3.5的自带库目录在
/usr/lib/python3/dist-packages
/usr/lib/python3.5/

python2.7的自带库目录在
/usr/lib/python2.6/dist-packages
/usr/lib/python2.7/

通过pip安装的模块目录在
/usr/local/lib/python3.5/dist-packages
/usr/local/lib/python2.7/dist-packages
 

3 Python目录搜索顺序和环境变量PYTHONPATH设置

javascript:void(0)

Python搜索模块的路径:
1)、程序的主目录
2)、PTYHONPATH目录(如果已经进行了设置)
3)、标准连接库目录(一般在/usr/local/lib/python2.X/)
4)、任何的.pth文件的内容(如果存在的话).新功能,允许用户把有效果的目录添加到模块搜索路径中去
.pth后缀的文本文件中一行一行的地列出目录。
这四个组建组合起来就变成了sys.path了,

>>> import sys
>>> sys.path
导入时,Python会自动由左到右搜索这个列表中每个目录。

执行命令:   touch ~/.bash_profile

PATH="/Library/Python/2.7/site-packages:${PATH}"

export PATH

PYTHONPATH="/Library/Python/2.7/site-packages:{$PYTHONPATH}"

export PYTHONPATH

保存后的环境变量不会立即生效,需要执行   source ~/.bash_profile

 

4python多版本切换

4.1update-alternatives熟悉

update-alternatives是linux下的一个链接管理工具,可以用于管理软件多个版本。

终端输入

update-alternatives --help

出现如下帮助提示信息,常用命令此处以粗体做标记:

命令:
  --install <链接> <名称> <路径> <优先级>
    [--slave <链接> <名称> <路径>]  在系统中加入一组候选项。
  --remove <名称> <路径>   从 <名称> 替换组中去除 <路径> 项。
  --remove-all <名称>      从替换系统中删除 <名称> 替换组。
  --auto <名称>            将 <名称> 的主链接切换到自动模式。
  --display <名称>         显示关于 <名称> 替换组的信息。
  --query <名称>           机器可读版的 --display <名称>.
  --list <名称>            列出 <名称> 替换组中所有的可用候选项。
  --get-selections         列出主要候选项名称以及它们的状态。
  --set-selections         从标准输入中读入候选项的状态。
  --config <名称>          列出 <名称> 替换组中的可选项,并就使用其中,哪一个,征询用户的意见。
  --set <名称> <路径>      将 <路径> 设置为 <名称> 的候选项。
  --all                    对所有可选项一一调用 --config 命令。

<名称> 是 /etc/alternatives/<名称>,是链接替换组的主控名,可以看作软件名称,一个名称对应多个版本[路径]
    (如 pager , python等)

<链接> 是指向 /etc/alternatives/<名称> 的符号链接。一个名称对应一个链接。一般在/usr/bin下
    (如 /usr/bin/pager)

<路径> 是候选项目标文件的位置。将不同的路径和链接绑定,也就实现了版本切换操作。
    (如 /usr/bin/less, /usr/bin/python2.7等 )
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。

选项:
  --altdir <目录>          改变候选项目录。
  --admindir <目录>        设置 statoverride 文件的目录。
  --log <文件>             改变日志文件。
  --force                  就算没有通过自检,也强制执行操作。
  --skip-auto              在自动模式中跳过设置正确候选项的提示
                           (只与 --config 有关)
  --verbose                启用详细输出。
  --quiet                  安静模式,输出尽可能少的信息。不显示输出信息。
  --help                   显示本帮助信息。
  --version                显示版本信息。

javascript:void(0)

4.2 查看[名称]python

javascript:void(0)

我们可以使用 update-alternatives 来为整个系统更改Python 版本。以 root 身份登录,首先罗列出所有可用的python 替代版本信息:

update-alternatives --list python

update-alternatives: error: no alternatives for python

如果出现以上所示的错误信息,则表示 Python 的替代版本尚未被update-alternatives 命令识别。

update-alternatives命令的使用

javascript:void(0)

javascript:void(0)

主要的几个命令用法如下:

--install <link> <name> <path> <priority>

向系统中添加一个新的alternatives组,

link:指向/etc/alternatives/<name>的符号引用

name:这个链接组的名称

path:这个命令对应的可执行文件的实际路径

priority:优先级,在auto模式下,数字较大的选项有较高的优先级

示例: sudo update-alternatives --install /usr/bin/java  java  /home/likewise-open/SPREADTRUM/hunter.ding/tools/jdk1.8.0_112/bin/java  1062

--remove <name> <path>   remove <path> from the <name> group alternative.

移除系统中注册的某个<name>的某个软件版本<path>

--display <name>         display information about the <name> group.

--list <name>            display all targets of the <name> group.

4.3添加软件版本到update-alternatives

想解决这个问题,我们需要更新一下替代列表,将python2.7 和 python3.5 放入其中。

其中100和150表示优先级,数值越大,越先执行。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 150

以下尝试未果:

using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode

using /usr/bin/python3.5 to provide /usr/bin/python (python) in auto mode

Ubuntu 修改python环境变量 ubuntu python 环境变量_ubuntu

4.4查看已有版本

再次列出可切换的python版本

update-alternatives --list python

/usr/bin/python2.7

/usr/bin/python3.5

4.5去除版本

update-alternatives --remove  [名称][路径]

例如:

update-alternatives --remove java /usr/local/jre1.6.0_20/bin/java

4.6切换版本:

update-alternatives --config python

Ubuntu 修改python环境变量 ubuntu python 环境变量_环境变量_02

输入版本前的序号即可。

4.7故障说明

1python命令不识别:

xxx:~#python
程序 'python' 已包含在下列软件包中:
 * python-minimal
 * python3
请尝试:sudo apt install <选定的软件包>
说明python软链接乱了。

可直接执行python3:

python3

或者把python链接都去掉,再重新链接:

sudo update-alternatives --remove-all python

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 2

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 3

 

 

5ubuntu下修改环境变量以及添加PYTHONPATH方法

javascript:void(0)

5.1 只在当前.py脚步使用

只想在当前.py文件中使用该模块,例如lcm模块

import sys sys.path sys.path.append('/home/xxx/lcm-1.3.1') import lcm

5.2 用于当前终端:

在当前终端中输入:export PATH=$PATH:<你的要加入的路径>

不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。

  export NDK_ROOT=/home/jiang/soft/Android-ndk-r8e #只能在当前终端使用。

 

5.3 用于当前用户:

在用户主目录下有一个 .bashrc 隐藏文件,可以在此文件中加入 PATH 的设置如下:

$ gedit ~/.bashrc

加入:

export PATH=<你的要加入的路径>:$PATH

如果要加入多个路径,只要:

export PATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PATH

当中每个路径要以冒号分隔。

这样每次登录都会生效

添加PYTHONPATH的方法也是这样,在.bashrc中添加

export PYTHONPATH=/home/zhao/setup/caffe-master/python:/home/zhao/setup/mypy:$PYTHONPATH 

保存后在终端输入 $ source ~/.bashrc 使环境变量立即生效

5.4 用于所有用户:

$ sudo gedit /etc/profile 

加入:
export PATH=<你要加入的路径>:$PATH

就可以了。

终端输入:echo $PATH 可以查看环境变量

注意,修改环境变量后,除了第一种方法立即生效外,第二第三种方法要立即生效,可以source ~/.bashrc或者注销再次登录后就可以了!

 

6 Linux下系统自带python和Anaconda切换

javascript:void(0)

javascript:void(0)

6.1使用Anaconda的python

在~/.bashrc中修改文件的话,即加入

sudo gedit ~/.bashrc

export PATH="/home/myname/anaconda2/bin:$PATH"

source ~/.bashrc.

则输入python命令就会直接出来Anaconda环境下的python。

python

6.2运行系统自带python

此时如果运行系统自带python,可以去掉.bashrc文件中增加的语句。

或者输入绝对路径:

python2

 /usr/bin/python

python3 

/usr/bin/python3