欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Virtualenv 快速上手指南

程序员文章站 2022-03-30 16:33:59
...
                     

1. virtualenv概述

 

virtualenv 通过创建独立Python开发环境的工具,来解决依赖、版本以及间接权限问题。比如一个项目依赖Django1.3 而当前全局开发环境为Django1.7,版本跨度过大, 导致不兼容使项目无法正在运行,使用virtualenv可以解决这些问题。

   

virtualenv 创建一个拥有自己安装目录的环境,这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库。


2. 安装Virtualenv

使用pip安装Virtualenv

$ pip install virtualenv $ sudo pip install virtualenv #或者由于权限问题使用sudo临时提升权限
  • 1
  • 2

3. virtualenv基本使用

3.1 使用virtualenv创建python环境

$ virtualenv test  #创建一个名为test的目录,并且安装了bin/python和bin/pip,创建了lib,include,bin目录    Using base prefix '/usr'    New python executable in /home/zhangchengfei/test/bin/python3    Also creating executable in /home/zhangchengfei/test/bin/python    Installing setuptools, pip, wheel...done.$ cd test$ ll    drwxrwxr-x  2 zhangchengfei zhangchengfei 4096  524 19:37 bin/    drwxrwxr-x  2 zhangchengfei zhangchengfei 4096  524 19:37 include/    drwxrwxr-x  3 zhangchengfei zhangchengfei 4096  524 19:37 lib/    -rw-rw-r--  1 zhangchengfei zhangchengfei   60  524 19:37 pip-selfcheck.json
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • lib,所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下
  • bin,bin/python是在当前环境是使用的python解释器

如果在命令行中运行virtualenv --system-site-packages test,会继承/usr/lib/python2.7/site-packages下的所有库,最新版本virtualenv把访问全局site-packages作为默认行为。

3.2 **virtualenv

  • test目录下使用如下命令

    $ source ./bin/activate  # **当前virtualenv(test) $ # 注意终端发生了变化
    • 1
    • 2
  • 使用pip查看当前库,显示依赖并生成requirement文件

    (test) $ pip listpip (8.1.2)setuptools (21.2.1)wheel (0.29.0) # 现在只有这三个pip freeze  # 显示所有依赖pip freeze > requirement.txt  # 生成requirement.txt文件pip install -r requirement.txt  # 根据requirement.txt生成相同的环境
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

3.3 关闭virtualenv

  • 使用下面命令

    $ deactivate
    • 1

3.4 指定python版本

  • 可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本

    # 创建python2.7虚拟环境$ virtualenv -p /usr/bin/python2.7 test    Running virtualenv with interpreter /usr/bin/python2.7    New python executable in /home/zhangchengfei/test/bin/python2.7    Not overwriting existing python script /home/zhangchengfei/test/bin/python (you must use /home/zhangchengfei/test/bin/python2.7)    Installing setuptools, pip, wheel...done.# 创建python3.4虚拟环境$ virtualenv -p /usr/local/bin/python3.4 test    Running virtualenv with interpreter /usr/bin/python3.4    Using base prefix '/usr'    New python executable in /home/zhangchengfei/test/bin/python3.4    Also creating executable in /home/zhangchengfei/test/bin/python    Installing setuptools, pip, wheel...done.
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

4. 生成可打包环境

  • 某些特殊需求下,可能没有网络,我们期望直接打包一个test,可以解压后直接使用,这时候可以使用virtualenv -relocatable指令将test修改为可更改位置的test

    # 对当前已经创建的虚拟环境更改为可迁移[test]$ virtualenv --relocatable ./    Making script /home/zhangchengfei/test/bin/wheel relative    Making script /home/zhangchengfei/test/bin/pip3 relative    Making script /home/zhangchengfei/test/bin/pip relative    Making script /home/zhangchengfei/test/bin/easy_install-3.4 relative    Making script /home/zhangchengfei/test/bin/pip3.4 relative    Making script /home/zhangchengfei/test/bin/python-config relative    Making script /home/zhangchengfei/test/bin/easy_install relative
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

【完】

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow