【学习心得】Linux下的Python虚拟环境搭建

news2024/11/23 19:17:12

问题描述:本文解决在Linux系统(Ubuntu举例)中如何实现Python的多版本以及搭建Python虚拟环境。

一、Linux系统中实现Python多版本

1、第一步:在官网中找到对应Python版本的tar压缩包的下载链接。

 在历史版本中找到你想要的Python版本

 右键点击 ——> 复制链接2、第二步:在终端中用wget将刚刚选择好的Python版本下载到Ubuntu中

wget https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz

 3、第三步: 在正式安装Python之前要安装一下依赖包

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev

4、第四步:解压tar文件然后编译

# 解压
tar -zxvf Python-3.8.16.tar
# 进入文件夹
cd Python-3.8.16

# 指定安装位置prefix=/usr/local/python-3.8
# 优化快速安装--enable-optimizations
./configure prefix=/usr/local/python-3.8 --enable-optimizations

# 编译&&安装
sudo make && make install

编译安装后,Python3.8被安装在了/usr/local下面

 在/usr/local/python-3.8/bin下面有python3的可执行文件(蓝色)

 5、第五步:配置环境变量(创建软链接)

sudo ln -s /usr/local/python-3.8/bin/python3.8 /usr/bin/python3.8

sudo ln -s /usr/local/python-3.8/bin/pip3.8 /usr/bin/pip3.8

这样一来直接在终端中输入python3.8就可以使用啦!

6、第六步:测试一下

 

 

二、Linux下的Python虚拟环境搭建

1、第一步:安装虚拟环境库virtualenv与虚拟环境管理库virtualenvwrapper

简单介绍一下virtualenvwrapper:

virtualenvwrapper是一个Python虚拟环境管理工具,可以更方便地管理虚拟环境。相比于直接使用venv或virtualenv,virtualenvwrapper有以下优点:

  • 统一的管理环境:使用virtualenvwrapper可以将所有虚拟环境整齐地放在一个地方,例如~/.virtualenvs。而venv和virtualenv创建的虚拟环境散落在各处,较难管理。
  • 简单的命令:virtualenvwrapper提供了简单的命令来创建、删除、复制虚拟环境,如mkvirtualenv、rmvirtualenv、cpvirtualenv等,使用更加方便。
  • 自动激活。使用virtualenvwrapper可以实现当进入某个目录时,自动激活相应的虚拟环境。
  • Tab补全。virtualenvwrapper提供了对虚拟环境名称的Tab补全功能,输入部分名称后按Tab可以显示匹配的环境名称。
pip3.8 install virtualenv
pip3.8 install virtualenvwrapper

【注】只有pip安装才能找到virtualenvwrapper.sh文件

2、第二步:创建虚拟环境存放目录

# cd到家目录
cd ~
# 创建目录存放虚拟环境
mkdir .virtualenvs

3、第三步:修改.bashrc文件

简单介绍一下.bashrc文件:

.bashrc文件是Bash shell的配置文件,用于配置Bash shell的环境、Shell变量和函数等设置。.bashrc文件存放在用户主目录下,命名为.bashrc。

查找virtualenvwrapper.sh的文件路径,找到的文件路径后面写在.bashrc文件中。

which virtualenvwrapper.sh

cd ~
vi .bashrc

在文件的最下面添加以下三行

# 设置虚拟环境的安装位置
export WORKON_HOME=$HOME/.virtualenvs

# 在不指定虚拟环境编译器的情况下,设置默认使用的python3编译器
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

# 后面接的是virtualenvwrapper.sh文件路径
source /home/wangxin/.local/bin/virtualenvwrapper.sh

更新virtualenvwrapper.sh

source /home/wangxin/.local/bin/virtualenvwrapper.sh

更新.bashrc

source ~/.bashrc

4、第四步:常用虚拟环境命令

# 查看当前存在的虚拟环境
workon

# 创建一个指定Python版本的虚拟环境
mkvirtualenv -p python3.8 env_name

# 删除一个虚拟环境
rmvirtualenv env_name

# 进入虚拟环境
workon env_name

# 退出虚拟环境
deactivate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/595436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验篇(7.2) 03. 部署物理实验环境(下)❀ 远程访问

【简介】考虑到有很多人初次接触FortiGate防火墙硬件,因此在讲解部署物理实验环境的时候,防火墙的初次登录内容介绍的比较多,以致于需要将文章分下、下二篇。下篇我们重点介绍服务器的配置及部署。 防火墙的接口规划 在部署服务器之前&#x…

基于MCGS嵌入版组态软件的船舶绝缘在线监测装置

关注acrelzxz,了解更多详细内容 摘要:针对船舶供电系统电缆的绝缘状态问题,设计了一款电缆绝缘在线监测装置。装置采用低频交流注入法,在IT系统的中心点注入低频的交流信号,通过取样电路和A/D量化检测注入信号在电路中的响应&…

加密与解密 调试篇 动态调试技术 (二)-常见断点

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 (1)按寄存器条件中断 (2&…

渠道投放数据建设

广告投放渠道识别方式 1、渠道包:每个渠道分配不同的渠道包,用户下载APP之后根据他下载的是哪个渠道包来识别渠道来源,比较常见于应用商店的投放。但是需要注意渠道包可能会导致作弊情况,例如用虚拟机下载渠道包来模拟下载数据等…

Linux介绍和vm17pro安装 和Centos以及vm简单操作

Linux 介绍 概述 linux 怎么读, 不下10 种linux 是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c/php/python/java/go)都会部署到Linux/unix 系统上。常见的操作系统(windows、IOS、…

ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)

ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对接解决方…

浏览器跨域的配置

目录 1、前言 2、同源策略 3、跨源数据存储访问 4、浏览器跨域设置 4.1 版本号(49.x.x.x.x)之前的跨域设置 4.2 版本号(49.x.x.x.x)之后的跨域设置 5、批处理跨域设置 5.1 windows 操作系统。 5.2 Mac 操作系统 1、前言 …

STL库(1)

STL库(1) vectorvector介绍vector使用初始化元素访问内存扩容插入删除 listlist介绍初始化,元素访问插入删除元素 vector和list区别 vector vector介绍 vector是可以改变大小的数组的容器。其内存结构和数组一样,使用连续的存储…

我是如何精通软件工程的

软件工程是一个庞大且不断演化的领域,涉及许多创新。虽然如此,大多数技术 —— 如果不是全部 —— 在软件工程中往往最终汇聚为几个基本原则。工程师更好地掌握软件工程的方法是熟悉软件工程的基础知识,而不是那些不断变化的框架、语言或平台…

2023年Web服务器基准测试:NodeJS vs Java vs Rust vs Go

现在是2023年,是时候进行一次新的Web服务器基准测试了! 结果对我来说有些出乎意料! 一个Web服务器必须能够处理大量请求,尽管瓶颈在于IO。这次我决定比较最流行的、速度极快的现代框架的性能。 以下是有关实现细节的许多详细信息…

安装 vue-element-admin,安装报错解决

安装 vue-element-admin 克隆项目 git clone https://github.com/PanJiaChen/vue-element-admin.git //(英文的)git clone -b i18n https://github.com/PanJiaChen/vue-element-admin.git // 这个克隆出来是有中英文切换的进入项目目录 cd vue-element-admin建议不要用 cnpm…

chatgpt赋能python:Python交互编程入门指南

Python交互编程入门指南 Python是一种高级编程语言,适合初学者和专业人士使用。Python的互动式编程方式为开发人员提供了快速反馈的环境,从而实现更便捷和高效的开发过程。在本文中,我们将介绍Python的交互编程,为您提供Python编…

达梦数据库运维常用归档、sql日志、dexp与dimp操作

目录 一、归档文件配置... 3 二、sql⽇志的开启和关闭以及基本的操作... 3 三、执行计划... 5 四、工具和命令行数据库物理、逻辑备份,还原... 6 1、工具物理备份... 6 2、命令行联机备份... 8 3、命令行脱机备份... 8 4、工具物理还原... 8 5、命令行DMRM…

C++之动态分配new 删除delete 初始化memset

文章目录 1.动态分配 new1.引言2.new的实现 2.删除 delete3.初始化 memset 1.动态分配 new 1.引言 用new创建数组的优势:由于new创建的对象是在运行时确立的,所以有着具体情况具体分析的优点,那么什么叫做具体情况具体分析呢? 举…

linux led 驱动

前言 今天是儿童节,挣个奖牌给小孩玩玩。 在 linux 驱动大家庭中,LED 驱动算是个儿童,今天就写写他吧。正好之前写过他的婴儿时期《i.MX6ULL 裸机点亮 LED》,记得那时候他还穿着开裆裤呢,裸鸡嘛。 ioremap() 裸机程…

某点资讯Signature纯算逆向

本篇主要是介绍一些工作的运用熟练性,以及跟踪堆栈去看是否做一些其他操作等: 抓包: signature 为加密值; 先上trace下堆栈及加密 我们把结果base64下,看结果是否一致,来判断base64是否魔改 验证base64为标准&…

新规之下产业园区如何合理收费水电费用

一、政策背景 2018年3月30日,国家发改委发布《国家发展改革委关于降低一般工商业电价有关事项的通知》。明确提出进一步规范和降低电网环节收费,一是提高两部制电价的灵活性;二是全面清理规范电网企业在输配电价之外的收费项目,重…

三极管 场效应管

NPN 高电平导通 PNP 低电平导通 N-MOS 高电平导通 P-MOS 低电平导通 1. NPN 三极管,对于软件工程师来说,只需要关注数字电路,即: 导通还是截止,高电平还是低电平。至于三级管内部如何构成的,以及串了多少个电阻&am…

智能安全配电装置在老旧建筑防火中的应用

【摘要】现代社会的发展离不开电能,随着电能应用的广泛性,对用电安全有了更高的要求。近些年来,用电安全形式严峻,尤其是一些老旧建筑中因用电而引起的火灾事故频发,造成一系列严重的损失,严重影响着民众的…

PCout(n) -- STM32F103RCT6 位带操作

1. 使用位带操作控制GPIO口的输入、输出模式,以及输出的电平高、低 注:位带操作一般是操作单独的一个bit 位,而&,| 则可操作多个bit位,看自己的需求吧。(不懂&,| 是什么意思的自行问度…