Kali Linux中安装Python虚拟环境
今天我们说说virtualenv,通过字面可以猜到到一半,virtual即:虚拟的。那env是什么鬼?environment吗?嗯确实可以这样理解,所以virtualenv翻译成中文就是”虚拟环境“。
到底什么是虚拟环境呢?顾名思义,它是一个虚拟出来的环境。通俗的来讲,可以借助虚拟机(docker来理解虚拟环境,就是把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,而且各个容器之间互相隔离,互不影响。)众所周知的Django框架,我们创建一个项目可能需要安装很多依赖的环境,如果将这些环境直接安装在本地可能会对我们其他的工程会有影响。那我们通过虚拟机搞一个Django的虚拟环境就可以将Django的运行环境与本地的python环境隔离开。
为什么需要 virtualenvwrapper?而不是virtualenv?这要从 virtualenv 说起。virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。这对我们管理虚拟环境及其不方便。我们通过使用virtualenvwrapper,可以将所有的虚拟环境目录全都集中起来,比如放到 ~/Python/Envs,并对不同的虚拟环境使用不同的目录来管理。使用virtualenvwrapper 同时省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。
这里主要和大家分享在Kali linux中安装使用虚拟环境的方法,以及使用过程中会遇见的坑~ 本文方法同时适用于Debian等系统。
一、安装
a.首先要安装virtualenv,在终端中通过命令pip3 install virtualenv即可完成安装;
b.其次安装virtualenvwrapper, 在终端中通过命令:pip3 Install virtualenvwrapper即可完成安装
二、配置环境变量
- virtualenvwrapper它需要指定一个环境变量,叫做WORKON_HOME,并且需要运行一下它的初始化工具
virtualenvwrapper.sh,这个脚本在 /usr/local/bin/ 目录下。WORKON_HOME
就是它将要用来存放各种虚拟环境目录的目录,这里我们可以设置为
~
/Python/
Envs(确保这个目录已创建)
。export WORKON_HOME='
' source /usr/local/bin/virtualenvwrapper.sh~/Python/Envs
- 由于每次都需要执行这两部操作,我们可以将其写入终端的配置文件中。例如,如果使用 bash,则添加到 ~/.bashrc 中;如果使用 zsh,则添加到 ~/.zshrc 中。这样每次启动终端的时候都会自动运行
export
WORKON_HOME
=
~
/Python/
Envs
source
/
usr
/
local
/
bin
/
virtualenvwrapper.sh

报错啦!!!这就是常常会遇见的坑,通过提示信息我们可以看出是python路径的问题。由于kali linux默认安装了python2.x 和python3.x,我们这里都是通过pip3安装的virtualenvwrapper。所以我们只需修改virtualenvwrapper.sh文件,在脚本中添加python3的环境即可。



这里我们可以看见刚才我们安装的第三方包已经可以看见了。

选择好python解释器后,我们创建一个python文件这时pycharm提供的Terminal便会自动帮助我们workon到我们的虚拟环境了。

当然通过pycharm也可以创建虚拟环境,小伙伴可以自己动手试试~(就在解释器设置界面)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?