Ubuntu部署python3.7的开发和运行环境
1 概述
由于最近项目全部由python2.x
转向 python3.x
(使用 python3.7.1
) ,之前的云主机的的默认python版本都面临升级,故进行了升级后将相应的步骤记录下来,作为学习笔记吧。
服务器运行环境:
- ubuntu 18 LTS Server(同样也适合14,16,还有MacOS)
本安装方式具有如下特点:
- 不影响已经有的
python
环境 - 增量式安装
- 完全隔离的沙盒环境
- 甚至可以不需要root权限
2 下载
在python
官网下载指定平台下的python3.7.1
的环境
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
例如,下载下载的文件为Python-3.7.1.tgz
3 解压
然后进行解压:
tar -xvzf Python-3.7.1.tgz
生成目录Python-3.7.1
4 安装
进入目录Python-3.7.1
,进行配置:
./configure --with-ssl --prefix=/usr/local/python3
编译和安装:
make make install
5 建立虚拟环境
使用python开发环境的时候,一般建立在虚拟环境,这样可以形成项目运行环境的隔离,防止不同依赖的项目的干扰。
进入到当前用户Home
目录后,直接运行:
python3 -m venv py3venv --without-pip
注意:pyvenv脚本在3.7.1之后的版本中逐渐废弃,鼓励使用python3 -m venv,这样可以避免搞错pyvenv所关联的版本。
如果提示没有找到 venv 命令,则安装:
sudo apt install python3-venv
记得带上 --without-pip ,否则可能报错:
Failing command: ['/root/.pyvenv/py3venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']
经过上述操作,即可生成一份克隆有python3.7.1
的虚拟环境,然后运行:
source ./py3venv/bin/activate
即可使当前终端环境变成python3.7.1
的环境,看到终端前辍带有py3venv
表明已经成功:
(py3venv) webapp@iZ25torzzzzZ:~/py3venv/bin$
然后输入命令python
,就可以看到进入到python3.7.1
的运行界面:
(py3venv) webapp@iZ25torzzzzZ:~$ python Python 3.7.1 (default, Jun 3 2016, 19:37:46) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
6 安装pip
建立虚拟环境后,下一步就是为虚拟环境安装第三方库管理工具pip
在py3venv
虚拟环境下面执行:
curl https://bootstrap.pypa.io/get-pip.py|python
然后就可以在此环境下使用pip
来进行管理python的第三方库了。
但是由于官方库经常国内不能正常访问, 可以修改其为国内镜像。
linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url,内容如下:
[global] index-url = https: //pypi.tuna.tsinghua.edu.cn/simple |
7 常见问题-HTTPS错误提示
有时候需要升级pip
时,执行:
pip install --upgrade pip
出现HTTPS的错误提示:
pip raises ImportError: cannot import name HTTPSHandler
则需要安装 libssl-dev :
sudo apt-get install libssl-dev
然后再重新编译和安装python3.7.1:
make make install
7 后记补充
Ubuntu18之后,建议用apt方式直接安装。
MacOS则直接建议brew+pyenv的方式安装。
全自动化的,省事。