如果你的某些工程/应用依赖Python的某个包/库的不同版本,例如app1依赖pylib_3.4
,app2依赖pylib_3.9
,我们如何同时满足app1和app2对这个pylib
库的依赖呢?如果你的Python库是(用户或系统)全局安装的,那必然只能安装pylib
的其中一个版本,如要满足不同的版本依赖,则需要依靠Python环境管理。
virtualenv
是一个创建隔离Python环境的工具,当然也是一个Python包,使用pip
就可以安装。根据具体需求和用户角色,有以下两种安装方式。
- 系统全局安装(有sudo权限才可以采用此种安装方式):
$ sudo pip3 install virtualenv
- 用户全局安装:
$ export PYTHONUSERBASE=$HOME $ pip3 install --user virtualenv
安装好virtualenv
之后,就可以通过它来为项目构建独立的Python环境了。
- 创建独立环境的基本命令是:
# 创建一个叫ENV的Python环境, # 之后安装的Python包都会在这个目录之下 $ virtualenv ENV # 如果需要指定Python的版本 $ virtualenv -p python3.6 ENV
- 激活环境:
$ source /path/to/ENV/bin/activate
- 为环境安装项目需要的包,例如安装
TensorFlow 1.12.0
:$ pip3 install tensorflow-gpu==1.12.0
- 如何关闭环境:
$ deactivate
- 删除环境:
# 删除ENV目录下的文件即可 $ rm /path/to/ENV
最后,介绍一种安装多个Python版本的方式。deadsnakes PPA为Ubuntu提供了多个Python版本供apt
安装,只需要把这个PPA添加到系统的安装库列表就可以apt
安装特定版本的Python了。例如,Ubuntu 16.04自带了python3.5,现在如何安装python3.6呢?
# 添加 deadsnakes ppa 到系统
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt-get update
# 安装 python 3.6
$ sudo apt-get install python3.6
# 进入Python 3.6
$ python3.6
>> Python 3.6.8 (default, Dec 24 2018, 19:24:27)
>> [GCC 5.4.0 20160609] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>>>
网友评论