查看安装的版本
1
2[root@AndyCentOS7Basic ~]# python -V
Python 2.7.5查看可执行文件位置
1
2[root@AndyCentOS7Basic ~]# which python
/usr/bin/python查看 python 可执行文件
1
2
3
4[root@AndyCentOS7Basic ~]# ll /usr/bin/python*
lrwxrwxrwx 1 root root 7 May 17 15:42 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 May 17 15:42 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Apr 11 2018 /usr/bin/python2.7
可见最终 python 执行会指到 python2.7
因为 yum 依赖于默认的 python 版本的缘由,安装新版之前,将 yum 源直接指向 python2 或者 python2.7,然后安装新版本,最后将 python 指向新版即可。1
2
3
4
5vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2.7
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2.7
安装 Python3.7.1
下载页面
Python Setup and Usage
下载源码并安装,依次执行以下命令:1
2
3
4
5
6wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
tar -xzvf Python-3.7.1.tgz
cd Python-3.7.1
./configure
make
make install
运行 ./configure
之后,有以下提示1
2
3
4
5
6
7
8
9
10...
checking for g++... no
...
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
...
If you want a release build with all stable optimizations active (PGO, etc),
please run ./configure --enable-optimizations
直接 make1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22...
INFO: Could not locate ffi libs and/or headers
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_curses _curses_panel _dbm
_gdbm _sqlite3 _tkinter
_uuid readline
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc atexit pwd
time
Failed to build these modules:
_ctypes
running build_scripts
...
make install1
2
3...
ModuleNotFoundError: No module named '_ctypes'
make: *** [install] Error 1
说明:因为每台服务器环境都不一样,所以,如果遇到依赖包没有,百度一下,安装之后再重新编译安装 Python,直到安装成功。
Python3.7 版本需要一个新的包 libffi-devel,安装此包之后再次进行编译安装即可。1
yum install libffi-devel -y
之后重新 make && make install1
2
3
4
5...
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1
查看安装情况1
2
3
4
5
6
7
8
9
10[root@AndyCentOS7Basic bin]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/local/bin/python3.7m /usr/local/bin/python3.7 /usr/local/bin/python3.7m-config /usr/local/bin/python3.7-config /usr/local/lib/python3.7 /usr/include/python2.7 /usr/share/man/man1/python.1.gz
[root@AndyCentOS7Basic bin]# ll /usr/local/bin/python*
lrwxrwxrwx 1 root root 9 Nov 9 17:41 /usr/local/bin/python3 -> python3.7
-rwxr-xr-x 2 root root 13979584 Nov 9 17:40 /usr/local/bin/python3.7
lrwxrwxrwx 1 root root 17 Nov 9 17:41 /usr/local/bin/python3.7-config -> python3.7m-config
-rwxr-xr-x 2 root root 13979584 Nov 9 17:40 /usr/local/bin/python3.7m
-rwxr-xr-x 1 root root 3097 Nov 9 17:41 /usr/local/bin/python3.7m-config
lrwxrwxrwx 1 root root 16 Nov 9 17:41 /usr/local/bin/python3-config -> python3.7-config
将默认的 python 指向新安装的 python3.7.11
2
3
4
5
6
7
8
9
10
11
12
13
14[root@AndyCentOS7Basic ~]# ln -s /usr/local/bin/python3 /usr/bin/python
ln: failed to create symbolic link ‘/usr/bin/python’: File exists
[root@AndyCentOS7Basic ~]# rm -rf /usr/bin/python
[root@AndyCentOS7Basic ~]# ln -s /usr/local/bin/python3 /usr/bin/python
# 查看 python 指向
[root@AndyCentOS7Basic ~]# ll /usr/bin/python*
lrwxrwxrwx 1 root root 22 Nov 9 17:49 /usr/bin/python -> /usr/local/bin/python3
lrwxrwxrwx 1 root root 9 May 17 15:42 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Apr 11 2018 /usr/bin/python2.7
# 查看默认版本,以下显示 3.7.1 表示安装成功
[root@AndyCentOS7Basic ~]# python -V
Python 3.7.1
虚拟环境
创建虚拟环境
- 虚拟环境是 Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python 解释器。
- 虚拟环境非常有用,可以避免你安装的 Python 版本和包与系统预装的发生冲突。为每个项目单独创建虚拟环境,可以保证应用只能访问所在虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建更多虚拟环境的源。
- 与直接使用系统全局的 Python 解释器相比,使用虚拟环境还有个好处,那就是不需要管理员权限。
在 Python 3 中,虚拟环境由 Python 标准库中的 venv 包原生支持。
创建虚拟环境的命令格式如下:1
python -m venv virtual-environment-name
-m venv
选项的作用是以独立的脚本运行标准库中的 venv 包,后面的参数为虚拟环境的名称。
下面我们在 flasky 目录中创建一个虚拟环境。确保当前目录是你想要创建的虚拟环境目录下,然后执行以下命令:1
python -m venv my-venv
这个命令执行完毕后,当前目录中会出现一个名为 my-venv 的子目录,这里就是一个全新的虚拟环境,包含这个项目专用的 Python 解释器。
使用虚拟环境
若想使用虚拟环境,要先将其“激活”。如果你使用的是 Linux 或 macOS,可以通过下面的命令激活虚拟环境:1
2# 笔者使用的目录是 ~/python-apps/my-venv
source ~/python-apps/my-venv/bin/activate
虚拟环境被激活后,里面的 Python 解释器的路径会添加到当前命令会话的 PATH 环境变量中,指明在什么位置寻找一众可执行文件。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令提示符,加入环境名:(my-venv) $
。
激活虚拟环境后,在命令提示符中输入 python,将调用虚拟环境中的解释器,而不是系统全局解释器。如果你打开了多个命令提示符窗口,在每个窗口中都要激活虚拟环境。
虽然多数情况下,为了方便,应该激活虚拟环境,但是不激活也能使用虚拟环境。例如,为了启动 my-venv 虚拟环境中的 Python 控制台,在Linux 或 macOS 中可以执行 my-venv/bin/python
命令。
虚拟环境中的工作结束后,在命令提示符中输入:1
deactivate
以此来还原当前终端会话的 PATH 环境变量,把命令提示符重置为最初的状态。
在 windows 10 下配置 Python 3.7.1
- 解压至:
C:\dev\python
- 添加环境变量:PYTHON_HOME,指向上面的目录
- Path 项,添加:
%PYTHON_HOME%\
- 查看版本:
1
2
3
4
5
6
7C:\Users\AndyChen>python -V
Python 3.7.1
# 直接运行 python 查看版本信息
C:\Users\AndyChen>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:16) [MSC v.1915 32 bit (Intel)] on win32
>>>
看到版本信息,说明配置成功!
不过,建议用安装程序直接安装。安装程序可以选择安装 IDLE,解压包里没有这个工具。