无sudo权限如何在预装Python2.7的Linux上安装Python3.7虚拟环境
无sudo权限在预装Python2.7的Linux环境部署Python3.7虚拟环境
全程操作均在用户家目录下完成,不需要申请root权限,也不会改动系统自带的Python2.7配置。
1. 用户级编译安装Python3.7
系统默认不带Python3.7的情况下,直接把版本编译安装到个人目录即可:
- 先创建个人软件安装目录,避免和系统文件混淆:
mkdir -p ~/local/python37 - 解压Python3.7源码包,进入解压后的源码根目录,执行配置命令指定安装路径,开启编译优化:
./configure --prefix=$HOME/local/python37 --enable-optimizations - 编译并安装,
-j后面跟CPU核心数可以加快编译速度,比如4核CPU就用-j4:make -j4 && make install - 把Python3.7的执行路径加入个人环境变量,永久生效:
echo 'export PATH=$HOME/local/python37/bin:$PATH' >> ~/.bashrc source ~/.bashrc
- 验证安装结果,执行后返回3.7.x版本号即安装成功:
python3.7 --version
小提示:如果编译时报缺少基础依赖(比如openssl、zlib),不需要找管理员装系统级依赖,同样把对应依赖的源码编译安装到
~/local目录下,在~/.bashrc里把依赖的lib、bin路径加入LD_LIBRARY_PATH和PATH即可,全程不需要sudo。
2. 创建并使用Python3.7虚拟环境
Python3.7内置了venv模块,不需要额外安装virtualenv工具:
- 先创建统一存放虚拟环境的目录(可选,方便管理):
mkdir -p ~/venvs - 执行命令创建基于Python3.7的虚拟环境,示例虚拟环境命名为py37proj:
python3.7 -m venv ~/venvs/py37proj - 激活虚拟环境:
source ~/venvs/py37proj/bin/activate
激活后命令行提示符开头会出现(py37proj)标识,此时执行python、pip命令默认调用的就是Python3.7版本,所有安装的第三方包都会存放在虚拟环境目录下,和系统环境完全隔离。 - 退出虚拟环境直接执行命令即可:
deactivate
注意:虚拟环境激活状态下不要加sudo执行python/pip相关命令,sudo会直接跳过当前用户的环境变量配置,调用系统自带的Python2.7,还可能产生权限异常。
如果不想把Python3.7加入全局PATH,创建虚拟环境时直接写Python3.7二进制的绝对路径即可,示例:~/local/python37/bin/python3.7 -m venv ~/venvs/py37proj
内容的提问来源于stack exchange,提问作者Kaihua Hou
相关产品推荐
相关产品推荐

