【记录】Python3|Linux下安装Virtualenv和virtualenvwrapper用于处理虚拟环境
之前写过一篇Anaconda的:【安装】Python3|Windows下安装Anaconda、pytorch,以及修改pip默认安装路径_anaconda pip修改安装的包路径-CSDN博客
还写过一篇专门讲所有虚拟环境的:【记录】环境|Ubuntu18.04 Python 开发环境(虚拟环境)安装及四种切换方法对比_ubuntu18.04选择python-CSDN博客
太繁琐了,我现在写个简单一点的virtualenv安装的以便自己使用。
开始安装
首先我们要搞明白virtualenv到底在装什么。
它主要就装两个内容:
- 一些指令脚本,如workon等;
- 允许指定env所处的环境,这样workon下面可选项就可以自动获取了。
有了这个基本的认知,我们可以知道virtualenv不负责安装python,它只是个方便调用相应的python环境的环境管理工具。
其次,怎么装才不会出错又简洁?
- 不建议使用sudo apt install 安装 virtualenv!因为apt直接安装的版本可能会比较旧或者和当前的python版本不匹配导致出错,而且它不方便灵活控制安装结果在哪个文件夹里,对于多用户或者没有sudo权限的用户来说不友好。
- pip安装就行了。
pip怎么安装virtualenv?
首先你应该确定你的系统支持Python3,而不是还停留在古老的Python2。如果你还是Python2,建议退出文章并寻找发布日期在2016年及之前的其他博客文章。
- 如果你没有pip,且在Linux下,应运行“sudo apt install python3-pip”来安装pip;如果你是多用户没有办法使用sudo,你可以考虑跳过这一步转步骤3;
- 如果你已经有了pip,但是无法执行,你应该检查一下你是否有python,并转步骤3;如果你的pip可以正常执行,转步骤5。
- 如果你有python,但是pip不存在或无法执行而python可以执行,你可以考虑运行python -m venv your_env创建一个虚拟环境,然后运行source your_env/bin/activate,切换到这个虚拟环境中,再转步骤5。
- 如果你不仅pip坏掉了,而且python也无法执行,你应该尝试运行python3。如果python3可以用,可以转步骤3;如果python3也用不了了,可以考虑打开VScode并去应用商店安装Python扩展,输入“Shift+Ctrl+P”弹出命令输入之后输入“Python interpret”让VScode自己检测一下当前有哪些Python环境,如果找到了一个确实存在的python环境,你应该考虑用这个python解释器的绝对路径去执行python,比如
/usr/bin/python,然后转步骤3;如果你发现前面这些步骤都没有办法找到一个可以用的Python,你应该选择放弃这个服务器或者直接咨询服务器管理员,并退出这篇文章。 - 运行
pip install virtualenv、pip install virtualenvwrapper这两条指令,即可装好。
装好之后怎么使其能用?
-
原理非常简单,你用什么pip装的,安装的结果,它就会相应地存在哪里。那么用什么pip怎么看呢?如果你是绝对路径,那就是你那个绝对路径,如果你只是用了pip或pip3,那你运行“which pip”或者“which pip3”就可以看到。同时,请检查一下同目录下有没有相应的python文件。当你看到了自己的pip路径在
/usr/bin下时,检查/usr/bin/python或/usr/bin/python3是否存在,如果存在则记住,然后转步骤2;当你看到自己的pip路径是其他地方/bin/pip时,检查其他地方/bin/python或其他地方/bin/python3是否存在,如果存在则记住,然后转步骤3。 -
对于这种情况,装的脚本sh会默认放在
/home/用户名/.local/bin/virtualenvwrapper.sh这个路径,记住这个路径。转步骤4。 -
对于这种情况,装的脚本sh会默认放在
其他地方/bin/virtualenvwrapper.sh这个路径,记住这个路径。转步骤4。 -
编辑你的任意的终端配置文件(默认是
~/.bashrc,也有人用~/.zshrc的):vi ~/.bashrc。转步骤5。 -
在终端配置文件最后面添加三行:
export WORKON_HOME=你随便指定一个空目录都行,但建议是~/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=步骤1记住的python绝对路径 source 步骤2或3记住的脚本绝对路径添加完成后的示例如下:
export VIRTUALENVWRAPPER_PYTHON=/home/shandian/.virtualenvs/llm/bin/python export WORKON_HOME=/home/shandian/.virtualenvs source /home/shandian/.virtualenvs/llm/bin/virtualenvwrapper.sh我不写
~这种路径是因为我有时候会切换到root用户,而如果切换到root用户写相对路径就会发现virtualenv用不了了!所以也建议你们不要在这个步骤写相对路径。 -
最后,运行
source 终端文件,终端文件就是步骤4那个被编辑的文件。就可以正常使用virtualenv了!

进一步的使用可以继续看这篇博客:【记录】环境|Ubuntu18.04 Python 开发环境(虚拟环境)安装及四种切换方法对比_ubuntu18.04选择python-CSDN博客。
本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/146044915。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
相关文章:
【记录】Python3|Linux下安装Virtualenv和virtualenvwrapper用于处理虚拟环境
之前写过一篇Anaconda的:【安装】Python3|Windows下安装Anaconda、pytorch,以及修改pip默认安装路径_anaconda pip修改安装的包路径-CSDN博客 还写过一篇专门讲所有虚拟环境的:【记录】环境|Ubuntu18.04 Python 开发环…...
VSTO(C#)Excel开发3:Range对象 处理列宽和行高
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
Selenium库打开指定端口(9222、9333等)浏览器【已解决!!!】
就是在写动态爬虫爬取数据的过程中,如果用selenium的话,有一个缺点,就是当我们去测试一个网站能不能爬取,它都会重新换端口打开一个浏览器,不会使用上一次使用的浏览器,在实际使用过程中这样调试很烦&#…...
Redis在人员管理系统中的应用示例
用户会话管理 场景:用户登录后存储会话信息,支持多服务器共享 实现: 用户登录成功后,生成唯一Token(如JWT),作为Redis的Key Value存储用户ID、角色、权限等信息,设置过期时间&…...
蓝桥杯备考:倍增算法详解
如果我们想暴力求解的话,我们的时间复杂度是O(N)b最大是10的9次方,这时候我们一定会超时 #include <iostream> using namespace std;typedef long long LL; LL a,b,p;LL ret 1; int main() {cin >> a >> b &g…...
安徽省考计算机专业科目2025(持续更新)
目录 第一部分 计算机科学技术基础 第一章 计算机及其应用基础知识 1.1 计算机的特点、分类及其应用 1.2 信息编码与数据表示;数制及其转换方法;算术运算和逻辑运算的过程 第一部分 计算机科学技术基础 第一章 计算机及其应用基础知识 1.1 计算机…...
PostgreSQL、SQL Server和MySQL数据库性能调优与故障排除技术
通过结合具体技术特性与工具链的深度使用,可系统化提升数据库性能和稳定性。建议根据实际负载特征制定监控-分析-优化的闭环管理流程。 数据库技术: PostgreSQL 13:逻辑复制、分区表、并行查询、监控工具(如pg_stat_statements、…...
【贪心算法2】
力扣122.买卖股票最佳时机Ⅱ 链接: link 思路 要求最大利润,可以分解成子问题求解,在最低价格买入,最高价格卖出。 假如第0天价格最低,第3天价格最高,利润prices[3] - pricnes[0], 可以将利润公式拆解成 (prices[3]…...
SQL经典查询
查询不在表里的数据,一张学生表,一张学生的选课表,要求查出没有选课的学生? select students.student_name from students left join course_selection on students.student_idcourse_selection.student_id where course_selecti…...
## DeepSeek写水果记忆配对手机小游戏
DeepSeek写水果记忆配对手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端水果记忆配对小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 卡片里的水果…...
Flask 框架简介
Flask 框架简介 Flask 框架简介 Flask 框架简介 Flask 是一个 Python 微型网页开发框架。微型指明了 Flash 的核心是轻量级的,但是可以灵活扩展。下面的简单的例子要和一个数据库系统交互。Django附带了与最常见的数据库交互所需的库。另一方面,Flask允…...
【GoTeams】-5:引入Docker
本文目录 1. Dokcer-compose回顾下Docker知识编写docker-compose.yaml运行docker 2. 部署go服务编写dockerfile 1. Dokcer-compose 这里简单先用一下win版本的Docker,后期开发好了部署的时候再移植到服务器下进行docker部署。 输入命令docker-compose version 就可…...
将自定义vue组件加载在Mapbox或Maplibre的marker和popup上
1. 使用场景 在开发WebGIS应用时,我们常需要将自定义UI组件与地图元素结合。本文介绍如何将Vue组件集成到Mapbox/Maplibre的Marker标记点和Popup弹窗中,实现动态交互式的地图功能。 2. 为什么需要特殊处理? 在常规开发中我们大多的处理是 …...
定时任务和分布式任务框架
文章目录 一 Spring Task1.@Scheduled注解介绍2 基本用法(1)使用@EnableScheduling修饰启动类(2)创建定时任务的类(3)fixedDelay(4)fixedRate(5)cron3 执行多个任务4 设置异步执行5 @Async使用自定义线程池6 缺点二 xxl-job介绍架构图与其他任务调度平台的比较运行调…...
GB28181视频监控流媒体平台LiveGBS如何自定义收流端口区间以便减少收流端口数或解决端口冲突问题
LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249, webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间,下面介绍下如何修改配置这个区间。 从页面上修改这个区间,端口区间尽量设置大…...
rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流
1. 安装和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…...
Mac服务器上创建Docker并安装宝塔环境
1. 远程ssh登录服务器:ssh -o ProxyCommand"nc -X 5 -x 127.0.0.1:7890 %h %p" -i fenfaqianming.pem ec2-user54.254.XXX.XXX 2. mac服务器上需要安装Colima 3. brew install colima 4. colima start 5. colima autostart 创建mac服务器安装docker &…...
golang 从零单排 (一) 安装环境
1.下载安装 打开网址The Go Programming Language 直接点击下载go1.24.1.windows-amd64.msi 下载完成 直接双击下一步 下一步 安装完成 环境变量自动设置不必配置 2.验证 win r 输入cmd 打开命令行 输入go version...
康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…...
【够用就好008】开新坑自学esb32烧录进军物联网和嵌入式
见字如面,这里是AKA AIGC创意人竹相左边。 学习使用了三年的AI工具,现在最大的自信就是业余时间可以学习任何自己感兴趣的事,感觉手搓火箭也不是梦。 今天开个新坑,也是逐步探索想要进入的新世界。物联网(IoT&#…...
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。 答题思路 理解需求:要写一个函数,它能接收一个字符串,然后把这个字符串里每个单词的第一个字母变成大写。分解步骤 拆分单词:一般单词之间是用空格隔…...
Go红队开发—格式导出
文章目录 输出功能CSV输出CSV 转 结构体结构体 转 CSV端口扫描结果使用CSV格式导出 HTML输出Sqlite输出nmap扫描 JSONmap转json结构体转jsonjson写入文件json编解码json转结构体json转mapjson转string练习:nmap扫描结果导出json格式 输出功能 在我们使用安全工具的…...
从零构建高可用MySQL自动化配置系统:核心技术、工具开发与企业级最佳实践
在现代企业级数据库管理中,手动配置 MySQL 已无法满足高效、稳定和可扩展的需求。本文从 MySQL 配置管理的核心原理 出发,深入剖析 自动化配置工具的架构设计、关键技术实现,并结合 企业级落地方案,帮助读者构建一套 高可用、智能化的 MySQL 自动化配置系统。无论是 DevOps…...
element-plus中table组件的使用
1、table组件的基本使用 注意: ①对象集合,要从后端查询。 ②prop是集合中的对象的属性名;label是表格表头的名称。 2、将性别一列的71转为男,72转为女 问题描述: 解决步骤: ①将el-table-column变成双标签…...
K8s 1.27.1 实战系列(三)安装网络插件
Kubernetes 的网络插件常见的有 Flannel 和 Calico ,这是两种主流的 CNI(容器网络接口)解决方案,它们在设计理念、实现方式、性能特征及适用场景上有显著差异。以下是两者的综合对比分析: 一、Flannel 和 Calico 1. 技术基础与网络实现 Flannel 核心机制:基于 Overlay …...
Java基础回顾 Day4
多线程相关 runnable接口实现,解决单继承的问题,因为继承Thread类就不能继承其他类了 Callable接口的特点是满足线程需要返回值和抛出异常的情况 在创建线程后的任何时候都可以重新设置,线程已经创建,可以使用 Thread.setPrior…...
Go加spy++隐藏窗口
最近发现有些软件的窗口就像狗皮膏药一样,关也关不掉,一点就要登录,属实是有点不爽了。 窗口的进程不能杀死,但是窗口我不想要。思路很简单,用 spy 找到要隐藏的窗口的句柄,然后调用 Windows 的 ShowWindo…...
Windows CMD 命令大全(综合开发整理版)
CMD Windows CMD 命令大全(综合整理版)基础操作与文件管理类系统维护与配置类网络与连接类开发者常用命令CMD 黑窗口使用技巧1. **效率操作**2. **高级功能**3. **开发者高效技巧**注意事项**微软官方文档****其他实用资源****如何高效使用官方文档**Windows CMD 命令大全(综…...
网络安全通信架构图
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 在安全通信里面我经常听到的2个东西就是SSL和TLS,这2个有什么区别呢?以及HTTPS是怎么通信的?包括对称加密、非对称加密、摘要、…...
当中国“智算心跳”与全球共振:九章云极DataCanvas首秀MWC 2025
3月3日,西班牙巴塞罗那,全球通信与科技领域的盛会“2025世界移动通信大会(MWC 2025)”正式拉开帷幕。中国人工智能基础设施领军企业九章云极DataCanvas公司以全球化战略视野与硬核技术实力,全方位、多维度地展示了在智…...
