python如何创建一个虚拟环境_python venv虚拟环境创建与使用方法

裘德小鎮的故事
发布: 2025-09-15 21:11:01
原创
252人浏览过
创建Python虚拟环境需用venv模块执行python -m venv env_name,激活后通过pip管理项目依赖,避免版本冲突。

python如何创建一个虚拟环境_python venv虚拟环境创建与使用方法

创建一个Python虚拟环境,核心步骤其实非常直接:利用Python自带的

venv
登录后复制
模块,通过一条简单的命令就能完成。这能帮助我们隔离项目依赖,避免不同项目间的库版本冲突,让开发工作变得整洁有序。

解决方案

要创建一个Python虚拟环境,你需要打开你的终端或命令行工具,然后导航到你希望创建环境的项目根目录。

在项目目录下,执行以下命令:

python -m venv env_name
登录后复制

立即学习Python免费学习笔记(深入)”;

这里,

env_name
登录后复制
是你为这个虚拟环境自定义的名字,通常大家习惯用
venv
登录后复制
.venv
登录后复制
env
登录后复制
。我个人比较喜欢用
.venv
登录后复制
,因为它在文件浏览器里默认是隐藏的,让项目目录看起来更清爽。

命令执行完毕后,你会发现项目目录下多了一个名为

env_name
登录后复制
(或者你指定的名字)的文件夹。这个文件夹里包含了Python解释器的一个副本,以及
pip
登录后复制
等工具。

接下来,你需要“激活”这个虚拟环境。激活虚拟环境的命令会根据你使用的操作系统和终端类型有所不同。

macOS/Linux系统上(使用Bash或Zsh):

source env_name/bin/activate
登录后复制

在Windows系统上(使用CMD命令提示符):

env_name\Scripts\activate.bat
登录后复制

在Windows系统上(使用PowerShell):

env_name\Scripts\Activate.ps1
登录后复制

激活成功后,你的终端提示符前面会显示虚拟环境的名字,比如

(env_name) C:\my_project>
登录后复制
,这表明你当前的操作都在这个独立的Python环境中进行。

为什么我需要Python虚拟环境?它真的那么重要吗?

说实话,刚开始接触Python的时候,我真的觉得虚拟环境有点多余,甚至有些麻烦。为什么不能直接

pip install
登录后复制
到全局呢?但随着参与的项目越来越多,我开始频繁遇到各种“依赖地狱”问题。比如,一个老项目需要
Django 2.2
登录后复制
,而新项目却要用
Django 4.0
登录后复制
。如果都安装在全局Python环境里,那简直是一场灾难:要不就是旧项目跑不起来,要不就是新项目报错。

虚拟环境的价值就在于此,它就像给每个项目提供了一个独立的、干净的“沙盒”环境。每个沙盒里都有自己一套独立的Python解释器和安装的库。这意味着,你可以在项目A的虚拟环境里安装

Django 2.2
登录后复制
,同时在项目B的虚拟环境里安装
Django 4.0
登录后复制
,它们之间互不干扰。这不仅避免了版本冲突,也让项目依赖管理变得异常清晰。你不再需要担心全局环境被不相关的库污染,或者因为一个项目的依赖升级而影响到其他项目。对我来说,它从一个“可选项”迅速变成了“必选项”,大大提升了开发效率和项目的稳定性。

百度虚拟主播
百度虚拟主播

百度智能云平台的一站式、灵活化的虚拟主播直播解决方案

百度虚拟主播 36
查看详情 百度虚拟主播

如何在不同操作系统下激活和退出虚拟环境?

激活虚拟环境是将其“带入工作状态”的关键一步,而退出则是在你完成当前项目工作后,回到全局Python环境或切换到其他项目环境。

激活虚拟环境:

  • macOS / Linux (Bash / Zsh): 在你的项目目录下,如果虚拟环境名为

    venv
    登录后复制
    source venv/bin/activate
    登录后复制
    这条命令会执行虚拟环境目录下的
    activate
    登录后复制
    脚本,它会修改你的
    PATH
    登录后复制
    环境变量,让系统优先找到虚拟环境中的Python和pip。

  • Windows (Command Prompt / CMD): 如果虚拟环境名为

    venv
    登录后复制
    venv\Scripts\activate.bat
    登录后复制
    在Windows的CMD中,
    activate.bat
    登录后复制
    脚本会完成类似的环境变量设置。

  • Windows (PowerShell): 如果虚拟环境名为

    venv
    登录后复制
    venv\Scripts\Activate.ps1
    登录后复制
    PowerShell用户需要运行
    .ps1
    登录后复制
    脚本。有时,你可能会遇到执行策略的限制,提示无法运行未签名的脚本。这时,你可能需要临时修改执行策略:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    登录后复制
    (使用后建议改回:
    Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
    登录后复制
    )。

退出虚拟环境:

无论你是在哪个操作系统或终端,退出虚拟环境的命令都是一样的:

deactivate
登录后复制

执行这条命令后,你的终端提示符会恢复到激活前的状态,表示你已经离开了当前的虚拟环境,回到了系统全局Python环境。这时,你再运行

python
登录后复制
pip
登录后复制
,调用的就是全局安装的版本了。

虚拟环境创建后,我该如何安装和管理包?

一旦你的虚拟环境被激活,接下来的包安装和管理就变得非常直观了。所有通过

pip
登录后复制
安装的包,都会被隔离在这个特定的虚拟环境中,不会影响到你的全局Python安装或其他项目的虚拟环境。

安装包:

当虚拟环境激活后,你可以像往常一样使用

pip install
登录后复制
命令来安装任何你需要的Python包。例如:

(venv) $ pip install requests
(venv) $ pip install pandas numpy
登录后复制

这些包会被安装到当前激活的

venv
登录后复制
目录下的
lib/pythonX.Y/site-packages
登录后复制
中。你可以通过
pip list
登录后复制
命令查看当前虚拟环境中所有已安装的包及其版本。

管理项目依赖:

在一个真实的项目中,你通常会需要一个文件来记录项目的所有依赖,这样其他人(或者未来的你)在克隆项目后,可以轻松地复现相同的开发环境。这个文件通常叫做

requirements.txt
登录后复制

  • 生成

    requirements.txt
    登录后复制
    文件: 当你的项目开发到一定阶段,或者你安装了所有必需的包之后,可以运行以下命令来生成这个文件:

    (venv) $ pip freeze > requirements.txt
    登录后复制

    pip freeze
    登录后复制
    会列出当前虚拟环境中所有已安装的包及其精确版本号,然后通过
    >
    登录后复制
    重定向到
    requirements.txt
    登录后复制
    文件中。这个文件应该被纳入你的版本控制系统(如Git)。

  • requirements.txt
    登录后复制
    安装依赖: 当你在新的机器上设置项目,或者团队成员克隆了你的项目后,他们只需要先创建并激活一个虚拟环境,然后执行:

    (venv) $ pip install -r requirements.txt
    登录后复制

    pip
    登录后复制
    就会读取
    requirements.txt
    登录后复制
    中列出的所有包和版本,并自动安装它们。这保证了所有开发人员都在一个统一且可复现的环境中工作,极大地减少了“在我机器上没问题”的问题。

通过这种方式,虚拟环境不仅提供了隔离,还为团队协作和项目部署奠定了坚实的基础。

以上就是python如何创建一个虚拟环境_python venv虚拟环境创建与使用方法的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号