与 Java 类似,Python 底层通过一个虚拟机运行,而且已经移植到了多个平台上,也就是,需要根据不同的平台安装虚拟机,实际上最主要的就是 python 可执行文件。
现在大多数安装的都是 CPython ,也就是 C 语言实现的 Python ,通常,直接使用安装包安装即可。
这里详细介绍如何安装环境,使用虚拟环境等等。
简介
可以从官方 www.python.org 下载所需平台安装包,当然,如果需要也可以从 Source Releases 源码安装。
对于 Linux 来说,Python 是最基础的软件包,很多的一些系统工具都需要依赖 Python,所以,必定存在 Python 环境,关键是是否是所需的版本,有些老的版本可能是 2.X 版本。
而 Windows 默认是不会安装的,可以下载安装包,按照正常的软件包安装即可。
多版本
对于 CentOS-7 来说,官方默认仓库是没有对应的 RPM 包的,一般来说是需要用户从源码开始编译安装的,这里直接从 epel 安装对应的包,当然可能不是最新的。
二进制安装
通过如下命令查看并安装对应的包,如下以 3.6 版本为例。
# yum list --enablerepo=epel all | grep python3
# yum install --enablerepo=epel python36 python36-pip
此时,对应的二进制文件为 /usr/bin/python36
,库安装到了 /usr/lib64/python3.6/
目录下。而默认使用版本,实际上是通过符号链接指定的,例如如下的示例。
# ls /usr/bin/python* -alh
lrwxrwxrwx 1 root root 7 Jun 27 21:52 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 Jun 27 21:52 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7.1K Jun 21 04:28 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1.8K Jun 21 04:27 /usr/bin/python2.7-config
lrwxrwxrwx 1 root root 16 Jun 27 21:52 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root 9 Jul 9 23:29 /usr/bin/python3 -> python3.6
lrwxrwxrwx 1 root root 18 Jul 9 23:29 /usr/bin/python36 -> /usr/bin/python3.6
-rwxr-xr-x 2 root root 12K Apr 26 05:05 /usr/bin/python3.6
-rwxr-xr-x 2 root root 12K Apr 26 05:05 /usr/bin/python3.6m
lrwxrwxrwx 1 root root 14 Jun 27 21:52 /usr/bin/python-config -> python2-config
在替换完之后,可以通过 python --version
查看确认当前使用的版本号。
注意,Python3 和 Python2 所使用库保存的路径不同,所以,之前在 Python2 中安装的库,在 Python3 中无法使用,如果要使用 PIP 安装,则需要安装对应的版本。
可以通过 strace python -c 'import numpy'
命令确定其搜索路径。
其它
在升级 Python3 的时候,因为语法不支持,需要评估对系统工具的影响,例如对于 YUM 来说,因为其要用到 python2 才能执行,直接覆盖会导致 yum 不能正常使用。
# cat /usr/bin/yum
#!/usr/bin/python ----> #!/usr/bin/python2
# cat /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python ----> #!/usr/bin/python2
另外,使用 Python 时可以通过 虚拟环境 独立使用。