python几类安装方法

news/2025/12/1 3:35:48/文章来源:https://www.cnblogs.com/zyip/p/19291046

各类安装方式的核心区别与用途

1. 直接安装(官方安装包)

  • 方式:从 Python 官网下载安装包(.pkg/.exe)安装
  • 特点:
    • 安装到系统默认路径(macOS:/Library/Frameworks/Python.framework
    • 会添加到系统 PATH,成为全局可用版本
  • 适用场景:简单开发需求,不常切换 Python 版本
  • 缺点:版本管理混乱,多个版本易冲突

2. Homebrew 安装(macOS)

  • 方式:brew install python@3.11
  • 特点:
    • 安装到 /opt/homebrew/opt/python@3.11(Apple Silicon)
    • 自动处理依赖,易于更新和卸载
    • 可安装多个版本(python@3.9python@3.11
  • 适用场景:macOS 用户快速安装,需要系统级 Python 版本
  • 缺点:版本切换需手动配置 PATH,不如 pyenv 灵活

3. pyenv 安装(版本管理器)

  • 方式:pyenv install 3.11.9
  • 特点:
    • 将 Python 安装到 ~/.pyenv/versions/ 目录
    • 可安装任意版本,支持全局 / 局部 / 会话级版本切换
    • 不影响系统 Python,隔离性好
  • 适用场景:需要频繁切换 Python 版本,多项目开发
  • 优点:版本管理最灵活,推荐作为主要安装方式

4. venv 虚拟环境(项目级隔离)

  • 方式:python -m venv .venv
  • 特点:
    • 基于已安装的 Python 版本创建隔离环境
    • 每个项目一个虚拟环境,依赖完全隔离
    • 不安装新 Python 版本,仅隔离依赖包
  • 适用场景:所有项目开发,避免依赖冲突
  • 本质:不是安装 Python,而是复用已安装的 Python 版本

推荐使用流程(最佳实践)

 

image

 

 
 
 
 

安装 pyenv

通过 pyenv 安装所需 Python 版本

设置全局默认版本: pyenv global 3.11.9

进入项目目录

创建虚拟环境: python -m venv .venv

激活虚拟环境: source .venv/bin/activate

安装项目依赖: pip install xxx

 
 
 
 
 
 

安装 pyenv

通过 pyenv 安装所需 Python 版本

设置全局默认版本: pyenv global 3.11.9

进入项目目录

创建虚拟环境: python -m venv .venv

激活虚拟环境: source .venv/bin/activate

安装项目依赖: pip install xxx

各类方式的对比表

方式安装对象隔离级别主要用途
直接安装 系统级 Python 无隔离 简单开发,不推荐
Homebrew 安装 系统级 Python 版本级隔离 macOS 快速安装
pyenv 安装 用户级 Python 版本级隔离 多版本管理,推荐
venv 虚拟环境 项目级依赖环境 项目级依赖隔离 项目依赖隔离,必备

总结

  1. pyenv 负责管理 Python 版本:解决 “用哪个 Python” 的问题。
  2. venv 负责管理项目依赖:解决 “项目用哪些包” 的问题。
  3. 推荐组合:pyenv(安装版本) + venv(隔离依赖),这是 Python 开发的标准配置。
  4. Homebrew / 直接安装:适合简单场景,复杂项目建议用 pyenv 管理版本。
 
简单来说,pyenv 管 “Python 版本”,venv 管 “项目依赖”,两者结合使用最规范。

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

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

相关文章

技术管理:搭建团队研发管理体系的一个框架概述

前言 在如今的 IT 信息、互联网和计算机科技相关行业,竞争激烈。互联网行业的发展已经到了下半场,互联网用户增长趋近饱和;AI 人工智能大模型技术还在如火如荼的发展,这股浪潮席卷着每一个科技公司,互联网产品研发…

Zero Cool

打开图片,发现有一帧有一个二维码,在https://ezgif.com/split/ezgif-372a0fcfe884a0f8.gif.html 分解图片直接扫描扫不出来,在ps里面修改一下长和宽在https://cli.im/deqr/other 扫描得到flag

AI元人文与AI哲学:六十日跋涉后的思想相遇

AI元人文与AI哲学:六十日跋涉后的思想相遇 当两种关于人工智能时代的宏大构想在同一时空维度中浮现,思想的交锋与映照便成为观察这个时代精神图景的最佳窗口。AI元人文构想以六十日八百篇人机协作手稿的密集生长方式…

代码随想录算法训练营第四章 字符串part02

代码随想录算法训练营第四章 字符串part02** 151.翻转字符串里的单词 ** leetcode链接:https://leetcode.cn/problems/reverse-words-in-a-string/ 题目描述:给你一个字符串 s ,请你反转字符串中 单词 的顺序。单词…

Dark night

打开下载的文件,发现有文字被隐写ctrl+a复制全部,粘贴到记事本,发现一串数字将数字转成字符串,得到flag

LAUNCH ES200 EV Insulation Resistance Tester: Essential for EV Safety Electrical Diagnostics

The Critical Role of Insulation Resistance Testing in EV Maintenance: Introducing the LAUNCH ES200 As electric vehicles (EVs) become increasingly prevalent across Europe and America, the demand for saf…

Plain

wireshark打开文件,搜索flag追踪TCP流发现加密编码base64解码得到flag

Optimize EV Battery Performance with LAUNCH EVB624 24-Channel Wireless Equalizer

The Hidden Hazard in EV Battery Packs: Cell Imbalance In the world of electric vehicles, a battery pack’s health is the backbone of performance and reliability. Yet, even the most advanced EVs can fac…

STM32CubeMX 开发笔记:Debug-serial wire 必须选中

如果不选中,下次就没法通过调试接口下载程序了。

http-header

打开网址提示缺少条件查看源码,发现两个加密编码解码得到需要的条件使用扩展改成对应的条件刷新页面,获得flag

HBM

在https://www.iamwawa.cn/morse.html 解码摩斯密码因为只有大写字母和数字猜测是base32加密,解码得到16进制16进制转字符串,得到flag

vim高亮单词

vim最多可以设置3组高亮(也就是最多只能设置三种颜色) :mat[ch] {group} /{pattern}/ :2mat[ch] {group} /{pattern}/ :3mat[ch] {group} /{pattern}/如:match Label /hello/ 取消高亮 :mat[ch] [none] :2mat[ch] [n…

Authorized 1-Year AUTEL VAG SFD Subscription for EU/US VAG Repair Diagnostics

Navigating VAG Vehicle Repairs: Overcoming Challenges with AUTEL VAG SFD One-Year Authorization Service Problem: Staying Current with VAG Vehicle Diagnostics is a Pain Point For European and American a…

zipbook

将文件放进随波逐流里面发现文件里面还有其他文件使用binwalk分离文件打开文件,ctrl+a全选文件内容,选择字体获得flag

AWD比赛随笔

参加了一次AWD比赛,大致分享一下。 (上半场梭哈全场,下半场被全场梭哈) 第一场正常发挥 首先就是刚开始的20分钟,一定要做好防御。防御不好什么都是扯淡。如果能改root密码就改,我们这场比赛就没让我们改,因为权…

性能优化实战:从实例属性到扩展方法的演进

在软件开发中,性能优化是一个永恒的主题。即使是看似微不足道的设计决策,也可能在高并发场景下产生显著的性能影响。本文将通过一个实际案例——TangdaoTask类中Duration属性的设计演进,深入探讨"实例属性 vs …

vimgrep查找当前文件中的所有结果

vimgrep :vim[grep][!] /{pattern}/[g][j][f] {file} :vim[grep][!] {pattern} {file} ...如 :vimgrep /hello/g %:cope[n] [height] :ccl[ose] :cw[indow] [height]用:cw打开quickfix list查看搜索结果 lvimgrep :…

Hello World及Java编译基础知识

Hello World新建文件夹存代码 新建一个.java文件 编写代码public class hello{public static void main (String[] args){System.out.print("Hello,World!");} }编译 javac java文件(环境变量) 生成一个clas…

Walking

将文件放进随波逐流里面,使用foremost分离,得到一张二维码扫描二维码,获得flag

深入解析:MQTT客户端发布和订阅是什么意思?为什么mqttserver还要手工维护客户端ID列表和订阅主题和按需发送内容?

深入解析:MQTT客户端发布和订阅是什么意思?为什么mqttserver还要手工维护客户端ID列表和订阅主题和按需发送内容?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…