virtualenv 虚拟环境安装
问题:
工作中开发新项目时,把代码从gitlab上拉到服务器后,需要给项目新建1个虚拟环境,然后再安装项目所需要的依赖。所以这里记录一下安装虚拟环境的方法
方法:
(1)安装虚拟环境:virtualenv [OPTIONS] [虚拟环境名称]
(2)安装依赖:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple(清华镜像源)
一、virtualenv 虚拟环境安装
virtualenv 工具可以用来在 Linux 操作系统中创建一个虚拟的Python环境。这个环境是独立的、隔离的,拥有自己的环境安装目录(而不是把所有的第三方包等都安装在 /usr/lib/python3.4/site-packages 目录(Python3.4的默认Linux安装目录)下)。
它可以用来解决Python项目开发和运行过程中的依赖项和版本问题,而不必和其他项目的Python环境以及全局的Python环境发生冲突。
1、安装 virtualenv
建议使用 pip
工具安装 virtualenv 包:
$ pip install virtualenv
2、创建虚拟环境
安装完成后,可以使用 virtualenv
命令创建放置虚拟环境的目录:
$ virtualenv [OPTIONS] [虚拟环境名称]

创建原理:
在目录 ENV 里会初始化虚拟环境的相关目录和文件,包括 Python 语言本身的环境以及 pip 等相关程序都会在这个目录里创建(拷贝)一份新的。

ENV/lib
和 ENV/include
目录中包含了虚拟环境ENV使用的库文件。在虚拟环境中安装的第三方包会安装在 ENV/lib/python3.4/site-packages
目录下。
ENV/bin
目录里面放置了可执行文件,在里面有新安装的Python 包中的可执行程序,包括pip等相关工具。
OPTIONS:
--no-site-packages 参数:
默认情况下,虚拟环境会依赖系统环境中的 sit package,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上 --no-site-packages
参数建立虚拟环境。
$ virtualenv --no-site-packages [虚拟环境名称]

--system-site-packages 参数:
如果你使用 --system-site-packages
参数创建虚拟环境,你创建的虚拟环境会继承 /usr/local/python34/lib/python3.4/site-packages 。
$ virtualenv --system-site-packages ENV

--extra-search-dir 参数:
如果你使用 --extra-search-dir
参数创建虚拟环境,这允许你提供自己的 setuptools 版本,而不是使用虚拟环境中嵌入的版本。
$ virtualenv --extra-search-dir=/path/to/distributions ENV
/path/to/distributions 参数:
指定一个包含 setuptools 以及 pip、wheels 等的目录。virtualenv 命令会在指定的目录中,寻找 wheels,但是会使用 pip 的标准的算法来选择安装的 wheel。
除了指定的目录,搜索顺序还包含:
1、相对于virtualenv.py 的 virtualenv_support 目录;
2、virtualenv.py 所在的目录;
3、当前目录;
--version 显示软件的版本号:
# virtualenv --version
-h, --help 显示帮助信息:
# virtualenv -h
-p PYTHON_EXE, --python=PYTHON_EXE 指定生成的虚拟环境使用的Python解释器:
默认的使用的是安装 virtualenv 的 Python 解释器
# virtualenv -p /usr/bin/python2.6 ENV

--no-setuptools 在新建的虚拟环境中不安装工具包:
# virtualenv --no-setuptools ENV

--no-pip 在新建的虚拟环境中不安装pip:
# virtualenv --no-pip ENV

--no-wheel 在新建的虚拟环境中不安装 wheel:
# virtualenv --no-wheel ENV

--extra-search-dir=DIR 指定安装新的虚拟环境时寻找工具包、pip等的目录路径,这个参数可以用来多次指定:
# virtualenv --extra-search-dir=/usr/local/python34/bin/ ENV

--prompt=PROMPT 可以为创建的虚拟环境指定提示前缀:
# virtualenv --prompt="测试" test


3、启动环境
在新创建的虚拟环境目录中,有一个启动脚本 ENV/bin/activate
,直接使用 source
命令来启动我们新创建的虚拟环境。
$ source ENV/bin/activate

这条命令修改了当前用户的环境变量 $PATH
,将我们新建的虚拟环境目录 ENV/bin/
作为第一个元素添加到了 $PATH 中。因为在Linux系统中输入命令时,命令可执行文件的搜索路径是根据 $PATH 中配置的路径的先后顺序来的,所以接下来你执行的所有命令都将是 ENV/bin/
中的命令(如果此目录中存在这个命令的话),新安装的模块都只会安装到该目录(ENV)中去。


active 脚本也会修改当前用户的命令行显示,在头部会显示出当前使用的虚拟环境。
4、退出和删除环境
如果要退出当前虚拟环境,使用 deactivate
命令:
$ deactivate

如果需要删除我们创建的虚拟环境,只需要退出,并删除创建的文件夹即可:
$ deactivate
$ rm -r /path/to/ENV
二、安装 virtualenvwrapper 扩展包
Virtaulenvwrapper 是 virtualenv 的扩展包,可以把新创建的环境记录下来,不需要每次启动虚拟环境时都执行一遍 source 命令,可以更方便的管理虚拟环境。
它可以实现:
1、将所有虚拟环境整合在一个目录下
2、管理(新增,删除,复制)虚拟环境
3、快速切换虚拟环境
1、安装 virtualenvwrapper :
1.1 建议适用 pip 安装:
$ pip install virtualenvwrapper
1.2 进入 用户主目录,打开 .bashrc 文件,添加如下代码:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

WORKON_HOME:
告诉 virtualenvwrapper 在哪里放置你的虚拟环境,默认是在 $HOME/.virtualenvs
目录下。如果这个目录不存在,virtualenvwrapper 运行的时候会自动创建它。
PROJECT_HOME :
告诉virtualenvwrapper在哪里存放你的项目的工作目录。
1.3 然后执行 source 命令,使刚添加的代码生效:
$ source .bashrc
2、使用 virtualenvwrapper
虚拟环境相关操作:
workon: 列出虚拟环境列表
mkvirtualenv [虚拟环境名称]: 新建虚拟环境
workon [虚拟环境名称]: 切换虚拟环境
rmvirtualenv [虚拟环境名称]: 删除虚拟环境
deactivate: 离开虚拟环境
2.1 使用 workon 命令,列出可以使用的虚拟环境:
$ workon

2.2 使用 mkvirtualenv 命令,创建新的虚拟环境:
mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME
除了-a , -i, -r, -h 所有的命令中的选项都会直接传递给virtualenv,新的虚拟环境在初始化后会自动激活(也就是进入该虚拟环境)。
$ mkvirtualenv ENV

-a 选项:可以将一个现有的项目关联到新建的虚拟环境
$ mkvirtualenv -a phone/ phone

-i 选项:可以在虚拟环境创建后安装一个或多个包
-r选项:可以指定一个列出了要安装那些包的文件,这个参数相当于pip 的 -r 参数。
2.3 使用 mktmpenv 命令自动生成一个唯一的名称:
mktmpenv [(-c|--cd)|(-n|--no-cd)] [VIRTUALENV_OPTIONS]
$ mktmpenv

2.4 lsvirtualenv 命令详细的列出我们创建的虚拟环境
$ lsvirtualenv

2.5 showvirtualenv 显示某个虚拟环境的细节描述
$ showvirtualenv cms
2.6 rmvirtualenv 删除 WORKON_HOME 里的一个虚拟环境
在你删除虚拟环境之前,必须先离开这个虚拟环境。
$ rmvirtualenv ENVNAME

2.7 allvirtualenv 在WORKON_HOME里的所有虚拟环境中执行一条命令:
allvirtualenv command with arguments
$ allvirtualenv pip install -U pip
2.8 workon 切换一个虚拟环境
$ workon environment_name

如果后面没有给出虚拟环境的名称,则会列出可以使用的虚拟环境
$ workon

2.9 deactivate 退出当前使用的虚拟环境
$ deactivate

2.10 virtualenvwrapper 打印出可以使用的命令,及简单的描述信息

作者:常大鹏
链接:https://www.jianshu.com/p/2857638f039d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App