创建和激活python虚拟环境(venv), 以及在vscode上运行python虚拟环境

最近使用python做项目,发现佬们都是在用python的虚拟环境来放项目。发现确实有一些优势在这之中,

  1. 首先就是隔离性,我们将每个项目放入相对应的环境配置,可以有效避免乱七八糟的库出现在解释器中。
  2. 其次就是可移植性强,假如我们想让别人运行我们的项目,我们就不用挨个儿告诉他,python需要安装什么什么库,以及版本是多少多少, 如果我们在项目文件夹中启动了一个python虚拟环境,那么对方也只需要在项目文件夹中运行这个虚拟环境即可。

1. 借助shell来创建python虚拟环境

准备工作 : 我们应确保安装了 "python虚拟环境" 相关的库

shell 复制代码
pip install virtualenv

我们首先创建一个文件夹,并在cmd中打开这个文件夹(也就是在cmd中设置工作目录为这个文件夹)

接下来在shell中输入:

shell 复制代码
python -m venv .pvenv

等待数秒,我们就创建好了基本的虚拟环境

激活python虚拟环境

在linux操作系统的shell中,我们使用如下指令来激活python虚拟环境

shell 复制代码
source ./.pvenv/bin/activate

在Windows操作系统中,我们使用

shell 复制代码
 .\.pvenv\Scripts\activate

该命令可能需要管理员权限,Linux系统请使用sudo提升指令权限, Windows则选择使用"以管理员的身份打开cmd",然后运行命令。

接下来我们就进入了python的虚拟环境

在shell的输入栏的最左端,显示"(.pvenv)" , 即为已经进入了虚拟环境

这时候我们再进行python相关的操作(如python打开解释器,pip安装库文件等)都会对该虚拟环境进行。

更新pip: 接下来使用如下指令来更新虚拟环境中的pip

shell 复制代码
python -m pip install --upgrade pip

安装所需的第三方模块

python 复制代码
pip install numpy pandas matplotlib

退出虚拟环境 ,在命令行中输入deactivate即可

shell 复制代码
deactivate

2. 在vscode中使用python虚拟环境

第一步当然是使用vscode打开项目文件夹(将整个文件夹拖到vscode的图标中,或者在vscode中使用"打开文件夹")

更改解释器

在vscode中,使用ctrl + shift + p 快捷键来打开命令面板(或者在vscode的选项卡中选择"查看" -> "命令面板")。

在命令面板中输入Python:Select Interpreter,(或者输入"选择解释器")

点击该命令后, 会提示选择一个解释器,我们选择 .pvenv即可。

3.(Windows)使用powershell来激活虚拟环境

或许你认为使用管理员模式打开cmd不够简单,那么可以使用windows中的Powershell来激活虚拟环境。

  1. 打开powershell,输入以下命令来更改执行策略(允许未签名的脚本运行)
powershell 复制代码
Set-ExecutionPolicy Bypass -Scope Process -Force
  1. 在项目的工作目录下,输入以下命令来运行脚本
powershell 复制代码
.\.venv\Scripts\activate
  1. 切换回原先的执行策略(保证安全性)
powershell 复制代码
Set-ExecutionPolicy RemoteSigned -Scope Process -Force

这样我们就在终端中激活虚拟环境啦。

可以将上面三行命令存入文件中 activate.ps1 , 这样之后只需要在powershell中运行这个文件就可以激活虚拟环境了

powershell 复制代码
# vv.ps1
# 激活虚拟环境
Set-ExecutionPolicy Bypass -Scope Process -Force
.\.venv\Scripts\activate
Set-ExecutionPolicy RemoteSigned -Scope Process -Force
相关推荐
weixin_437398216 分钟前
转Go学习笔记
linux·服务器·开发语言·后端·架构·golang
StrongerIrene15 分钟前
rs build 的process.env的值undefined解决方案
开发语言·javascript·ecmascript
风逸hhh28 分钟前
python打卡day58@浙大疏锦行
开发语言·python
Q_9709563940 分钟前
java+vue+SpringBoo足球社区管理系统(程序+数据库+报告+部署教程+答辩指导)
java·开发语言·数据库
为了更好的明天而战1 小时前
Java 中的 ArrayList 和 LinkedList 区别详解(源码级理解)
java·开发语言
烛阴1 小时前
一文搞懂 Python 闭包:让你的代码瞬间“高级”起来!
前端·python
JosieBook1 小时前
【Java编程动手学】Java中的数组与集合
java·开发语言·python
qq_589568101 小时前
element-plus按需自动导入的配置 以及icon图标不显示的问题解决
开发语言·javascript·ecmascript
lsx2024062 小时前
SQLite Select 语句详解
开发语言
Dovis(誓平步青云)2 小时前
基于探索C++特殊容器类型:容器适配器+底层实现原理
开发语言·c++·queue·适配器·stack