pyenv库应用入门与Ubuntu端安装实践
pyenv库应用入门与Ubuntu端安装实践
- pyenv概述
- virtualenv、pyvenv、pyenv
- virtualenv
- pyvenv
- pyenv
- Ubuntu端安装pyenv实践
- 安装依赖
- 报错解决
- 安装pyenv
- 配置环境变量
- 更换pyenv源地址
- pyenv基本用法
- 安装成功
- 服务器部署scrapyd
pyenv概述
pyenv 是一个用于管理多个 Python 版本的工具,它允许用户在同一台机器上安装、切换和管理不同版本的 Python。
virtualenv、pyvenv、pyenv
virtualenv
virtualenv 所要解决的是同一个库不同版本共存的兼容问题。例如项目 A 需要用到 requests 的 1.0 版本,项目 B 需要用到 requests 的 2.0 版本。如果不使用工具的话,一台机器只能安装其中一个版本,无法满足两个项目的需求。
virtualenv 的解决方案是为每个项目创建一个独立的虚拟环境,在每个虚拟环境中安装的库,对其他虚拟环境完全无影响。所以就可以在一台机器的不同虚拟环境中分别安装同一个库的不同版本。
pyvenv
pyvenv 与 virtualenv 功能和用法类似。不同点在于:
- pyvenv 只支持 Python 3.3 及更高版本,而 virtualenv 同时支持 Python 2.x 和 Python 3.x;
- pyvenv 是 Python 3.x 自带的工具,不需要安装,而 virtualenv 是第三方工具,需要安装。
- pyvenv 实际上是 Python 3.x 的一个模块 venv,等价于 python -m venv。
pyenv
与上述两个工具不同,pyenv 不是用来管理同一个库的多个版本,而是用来管理一台机器上的多个 Python 版本。主要解决开发中有的项目需要用Python 2.x,有的项目需要用Python 3.x的场景。
Ubuntu端安装pyenv实践
安装依赖
在安装pyenv之前,你需要确保你的系统上安装了以下依赖:
- Git:用于克隆pyenv的仓库
- Readline:用于命令行补全
- zlib:用于压缩
- libssl-dev(在某些系统上可能需要):用于SSL支持
- libffi-dev(在某些系统上可能需要):用于外部函数接口
- make:用于编译Python和一些其他软件
- ** build-essential**(在某些系统上可能需要):包括编译器和其他构建工具
对于Ubuntu/Debian系统:
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
报错解决
- No module named ‘_bz2’
sudo apt-get install bzip2 libbz2-dev - No module named ‘_curses’
sudo apt-get install libncurses5-dev libncursesw5-dev - No module named ‘_ctypes’
sudo apt-get install libffi-dev - No module named ‘_sqlite’
sudo apt-get install sqlite3 libsqlite3-dev - No module named ‘_ssl’
sudo apt-get install openssl
sudo apt-get install libssl-dev - No module named ‘_lzma’
sudo apt-get install liblzma-dev
安装pyenv
使用Git克隆pyenv仓库:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
配置环境变量
# 编辑.bashrc系统文件
vim ~/.bashrc
# 增加系统环境变量
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$HOME/.pyenv/bin:$PATH"
# 更新文件
source ~/.bashrc
更换pyenv源地址
使用pyenv安装虚拟环境时下载太慢了,可以更换默认的下载源地址:
find ~/.pyenv -type f -exec sed -i 's|https://www.python.org/ftp|https://mirror.nju.edu.cn|g' {} +
- find ~/.pyenv -type f:在 ~/.pyenv 目录下查找所有类型的文件(不包括目录);
- -exec … {} +:对找到的每一个文件执行后面的命令。这里的 {} 是一个占位符,代表当前处理的文件名。使用 + 可以让 find 将多个文件名传递给单个命令行,这比使用 ; 更高效;
- sed -i ‘s|…|…|g’:sed 是一个流编辑器,用于处理或编辑文本。这里使用 -i 选项直接修改文件,而不是输出到标准输出。s|…|…|g 是替换命令,其中 | 分隔符用来代替通常的 / 分隔符,以便更好地处理包含斜杠的URL。
pyenv基本用法
## 查看帮助文档
pyenv## 查看某个命令帮助文档
pyenv install --help## 查看版本
pyenv version## 检查 Python 是否正常运行
python -c "import sys; print(sys.executable)"## 查看已安装的 Python 版本
pyenv versions## 查看当前使用的 Python 版本
pyenv version## 查看所有可用的 Python 版
pyenv install --list ## 安装指定版本
pyenv install 3.9.1## 验证
python --version## 卸载指定版本
pyenv uninstall 3.9.1## 全局指定 Python 版本(影响所有项目)
pyenv global 3.9.1 ## 局部指定 Python 版本(仅影响当前项目目录),指定后在当前项目目录内创建 .python-version 文件,保存版本信息
## 优先级高于 global
pyenv local 3.9.1## 会话级指定 Python 版本(影响所有项目)
pyenv shell 3.9.1 ## 查看 python 的安装目录
pyenv which python## 重新生成 pyenv 的 shims 目录中的可执行文件
pyenv rehash
安装成功

服务器部署scrapyd
前面我们已经安装了3.8.20版本的python环境,接下来我们在这个环境下跑脚本
- 到home目录下新建spider目录,给spider目录绑定3.8.20版本环境

- 安装scrapy:
pip install scrapy - 新建一个名为
TestProjectSecond的scrapy项目,并新建一个脚本,进入该目录,执行scrapy crawl 1

- 安装scrapyd:
pip install scrapyd,pip install scrapyd-client - 在
TestProjectSecond下运行scrapyd,这里需要修改一下默认的ip,默认是127.0.0.1,需要改成0.0.0.0,修改文件路径:~/.pyenv/versions/3.8.20/lib/python3.8/site-packages/scrapyd/default_scrapyd.conf

- 然后服务器增加6800端口,就可以在本地打开了。
相关文章:
pyenv库应用入门与Ubuntu端安装实践
pyenv库应用入门与Ubuntu端安装实践 pyenv概述virtualenv、pyvenv、pyenvvirtualenvpyvenvpyenv Ubuntu端安装pyenv实践安装依赖报错解决安装pyenv配置环境变量更换pyenv源地址 pyenv基本用法安装成功服务器部署scrapyd pyenv概述 pyenv 是一个用于管理多个 Python 版本的工具…...
CS5346 - Annotation in Visualization (可视化中的注释)
文章目录 Annotation 的重要性Levels of Annotation (注释的层级)Headings and IntroductionHeadings(标题)陈述型(Statement):突出结论或有趣发现疑问型(Question)&…...
如何开发一套场外个股期权交易系统?个股期权交易软件包含:询价,报价,交易,持仓,行权,账户盈亏统计等
一、场外个股期权的定义与特点 场外个股期权(Over-the-Counter Equity Option)是一种由交易双方私下协商的非标准化金融衍生品合约,以特定个股为标的资产。与交易所上市的标准化期权不同,其合约条款(如行权价、到期日…...
高速电路中的电阻、电容的选型及应用
2.1 电阻的应用 2.1.1 与电阻相关的经典案例 如果说芯片是电路的骨架,那么电阻就是在芯片之间起连接作用的关节。电阻的阻值、布放位置等,对设计的成功起着至关重要的作用。 【案例2.1】串联电阻过大,导致板间告警失败 某产品由业务板和主…...
六、adb通过Wifi连接
背景 收集是荣耀X40,数据线原装全新的,USB连上之后,老是断,电脑一直叮咚叮咚的响个不停,试试WIFI 连接是否稳定,需要手机和电脑用相同的WIFI. 连接 1.通过 USB 连接手机和电脑(打开USB调试等这些都略过) adb device…...
Java新手村第二站:泛型、集合与IO流初探
文章目录 Java新手村第二站:泛型、集合与IO流初探泛型包装类集合IO流函数式接口和Lambda表达式 Java新手村第二站:泛型、集合与IO流初探 泛型 泛型的概念与作用: 核心目的:在编译期提供类型安全检查,避免运行时的 Cla…...
AT_abc398_e [ABC398E] Tree Game 题解
题目传送门 题目大意 题目描述 本题是一道交互题(你的程序需要通过输入输出与评测系统进行交互)。 给定一棵包含 N N N 个顶点的树 G G G,顶点编号为 1 1 1 至 N N N。第 i i i 条边连接顶点 U i U_i Ui 和 V i V_i Vi。 你和…...
CSI-external-provisioner
main() 这段Go代码是一个CSI(容器存储接口)Provisioner(供应器)的实现,用于在Kubernetes集群中动态提供持久卷。代码涉及多个组件和步骤,下面是对关键部分的解释: 初始化和配置 命令行标志和…...
android中dp和px的关系
关于android的dp和px的关系是我刚开始学习android的第一个知识点,不知不觉学安卓也有一年了,但是偶然间我发现我理解的dp和px的关系一直是错的,真的是有一点搞笑,今天特意写一篇博客纪念一下这个我理解错一年的知识点。 dp和px之间…...
DeepSeek模型在非图形智能体的应用中是否需要GPU
答:不一定 概念 1、是否需要GPU与应用是否图形处理应用无关 2、文本内容智能体大多也需要GPU来提供更好的性能 3、DeepSeek模型在非图形智能体的应用中是否需要GPU取决于具体的模型版本和部署环境 不需要GPU的模型版本 DeepSeek-R1-1.5B: 这…...
4.14代码随想录第四十三天打卡
图论理论基础 https://www.programmercarl.com/kamacoder/%E5%9B%BE%E8%AE%BA%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 98. 所有可达路径 (1)题目描述: (2)解题思路: #include <iostream> #include <vector> #include <list> using namespace std;vec…...
【视频目标分割论文集】Efficient Track Anything0000
github 摘要 视频对象分割和追踪任意目标领域出现了强大的工具——分割任意模型 2(SAM 2)。SAM 2 实现令人印象深刻的视频对象分割性能的关键组成部分包括用于帧特征提取的大型多阶段图像编码器,以及存储过去帧记忆上下文以辅助当前帧分割的…...
码率自适应(ABR)决策的直播场景
直播场景 1. 直播场景的普遍框架与工作原理 主播端:即各类主播(游戏、网红歌手、户外达人等),通过手机端或者个人电脑在线直播录制个人活动。 编码服务器:主播端上传视频流以后,编码服务器根据相应的编码转…...
SCP-Firmware安全通告:CVE-2024-11863和CVE-2024-11864
安全之安全(security)博客目录导读 目录 一、概述 二、CVE详情 三、受影响产品 四、修复建议 五、致谢 六、版本历史 一、概述 在SCP固件(SCP-Firmware)中发现两处安全漏洞,可能允许普通世界特权软件(normal world privileged softwareÿ…...
Redis高频面试题(含答案)
当然可以,Redis 是面试中非常常见的高频考点,尤其在后台开发、分布式系统、缓存设计等方向,面试官常常通过 Redis 来考察你的高并发处理能力、系统设计能力和对缓存一致性理解。 以下是一些典型 Redis 的面试场景题目类型和你可以如何回答的思路: ✅ 一、基础使用类问题 …...
双按键控制LED(中断优先级)
1.启动时,两个LED灯熄灭,1秒钟后(定时器实现),LED自动点亮; 2.按键1按下后,通过中断int0把两个LED熄灭5s时间,int0优先级设置为最高(优先级必须设置,设置后才…...
(四)机器学习---逻辑回归及其Python实现
之前我们提到了常见的任务和算法,本篇我们使用逻辑回归来进行分类 分类问题回归问题聚类问题各种复杂问题决策树√线性回归√K-means√神经网络√逻辑回归√岭回归密度聚类深度学习√集成学习√Lasso回归谱聚类条件随机场贝叶斯层次聚类隐马尔可夫模型支持向量机高…...
代码随想录第17天:二叉树
一、二叉搜索树的最近公共祖先(Leetcode 235) 由于是二叉搜索树,节点的值有严格的顺序关系:左子树的节点值都小于父节点,右子树的节点值都大于父节点。利用这一点,可以在树中更高效地找到最低公共祖先。 c…...
超越CUDA:ROCm与oneAPI在异构计算中的性能对比实验(国产GPU生态下的开发路径探索)
一、异构计算生态的竞争格局 当前异构计算领域呈现“一超多强”格局:英伟达凭借CUDA生态占据90%以上的AI训练市场份额,而AMD的ROCm与英特尔的oneAPI通过差异化技术路线持续挑战其垄断地位。二者在国产GPU生态建设中展现出独特价值—— R…...
全新电脑如何快速安装nvm,npm,pnpm
以下是全新电脑快速安装 nvm、npm 和 pnpm 的详细步骤,覆盖 Windows/macOS/Linux 系统: 一、安装 nvm(Node Version Manager) 1. Windows 系统 下载安装包: 访问 nvm-windows 官方仓库,下载 nvm-setup.ex…...
面试篇 - GPT-1(Generative Pre-Training 1)
GPT-1(Generative Pre-Training 1) ⭐模型结构 Transformer only-decoder:GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同,但位置编码是可训练的。 注意力机制: 原始Transformer的解…...
测试用例如何编写
综合起来,做测试用例时,需要考虑两个方面(主要配合接口测试) ①页面上显示的数据是从哪里来的,是否有全部显示 -- 简单来说就是数据效验②页面上显示的数据是否有交互/依赖(操作的先后顺序会影响页面显示的…...
读者、写者问题优化
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <semaphore.h> #define NUM_READERS 5 #define NUM_WRITERS 5 // 定义信号量和全局变量 sem_t sdata, srcount; int rea…...
AI推理强,思维模型也有功劳【60】启发式偏差思维
giszz的理解:你以为你以为的,就是对的吗?以谨慎的心态去面对不确定,保持空杯心态,不要因走捷径而出现偏差。 一、定义 启发式偏差思维模型是指人们在面对复杂问题或不确定情境时,倾向于使用启发式…...
【从零实现高并发内存池】内存池整体框架设计 及 thread cache实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
3.6 函数图像描绘
1.函数描图步骤 2.渐进性 2.1 水平渐进线 2.2 垂直渐进线 2.3 斜渐近线 3.作图...
从零开始:前端开发者的SEO优化入门与实战
从零开始:前端开发者的SEO优化入门与实战 一、SEO是什么?——给网站写一份“高颜值简历” 想象一下,你精心装修了一家米其林餐厅,但食客们却找不到门牌号,甚至地图上连个定位都没有——这大概就是网站不做SEO的下场。…...
电商中的订单支付(内网穿透)
支付页面 接口文档 Operation(summary"获取订单信息") GetMapping("auth/{orderId}") public Reuslt<OrderInfo> getOrderInfo(Parameter(name"orderId",description"订单id",requiredtrue) PathVaariable Long orderId){OrderI…...
ESP32开发之ubuntu环境搭建
1. 在Ubuntu官网下载Ubuntu server 20.04版本https://releases.ubuntu.com/20.04.6/ 2. 在vmware下安装Ubuntu 3. 改Ubuntu静态IP $ sudo vi /etc/netplan/00-installer-config.yaml# This is the network config written by ‘subiquity’ network: renderer: networkd eth…...
2025年,HarmonyOS认证学习及考试
HarmonyOS应用开发者认证考试 基础认证 通过系统化的课程学习,熟练掌握 DevEco Studio,ArkTS,ArkUI,预览器,模拟器,SDK 等 HarmonyOS 应用开发的关键概念,具备基础的应用开发能力。 高级认证…...
