Ubuntu的Python包环境管理

2019-01-11  本文已影响28人  Aspirinrin

如果你的某些工程/应用依赖Python的某个包/库的不同版本,例如app1依赖pylib_3.4,app2依赖pylib_3.9,我们如何同时满足app1和app2对这个pylib库的依赖呢?如果你的Python库是(用户或系统)全局安装的,那必然只能安装pylib的其中一个版本,如要满足不同的版本依赖,则需要依靠Python环境管理。

virtualenv是一个创建隔离Python环境的工具,当然也是一个Python包,使用pip就可以安装。根据具体需求和用户角色,有以下两种安装方式。

安装好virtualenv之后,就可以通过它来为项目构建独立的Python环境了。

  1. 创建独立环境的基本命令是:
    # 创建一个叫ENV的Python环境,
    # 之后安装的Python包都会在这个目录之下
    $ virtualenv ENV
    # 如果需要指定Python的版本
    $ virtualenv -p python3.6 ENV
    
  2. 激活环境:
    $ source /path/to/ENV/bin/activate
    
  3. 为环境安装项目需要的包,例如安装TensorFlow 1.12.0:
    $ pip3 install tensorflow-gpu==1.12.0
    
  4. 如何关闭环境:
    $ deactivate
    
  5. 删除环境:
    # 删除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.
>>>
上一篇下一篇

猜你喜欢

热点阅读