惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fox-IT International blog
Recent Announcements
Recent Announcements
D
Docker
IT之家
IT之家
B
Blog
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
量子位
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
博客园 - 司徒正美
李成银的技术随笔
美团技术团队
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
T
The Blog of Author Tim Ferriss
酷 壳 – CoolShell
酷 壳 – CoolShell
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
有赞技术团队
有赞技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
T
Tailwind CSS Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
小众软件
小众软件
B
Blog RSS Feed
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
M
Microsoft Research Blog - Microsoft Research
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog

自怼圈

自怼圈 2022.4.1 第6番 ~ DebugUself with DAMA ;-) 自怼圈 2020.8.1 暑期招新 ~ DebugUself with DAMA ;-) 怼圈年会:珠海小聚, 开启你的 2020 ~ DebugUself with DAMA ;-) 自怼圈 2019 圣诞招新:在调试中提高效能 ~ DebugUself with DAMA ;-) Roomer Counter v0 家务计分器 v0 自怼圈 2019 番夏招新:定制自己个儿的自学社区 ~ DebugUself with DAMA ;-) PoDU 综述1:绿巨人 ~ DebugUself with DAMA ;-) PoDU 综述2:四神汤 ~ DebugUself with DAMA ;-) PoDU 综述3:瑶台镜 ~ DebugUself with DAMA ;-) 怼故事发布渠道Where2Pub? ~ DebugUself with DAMA ;-) 从误解到改变 ~ DebugUself with DAMA ;-) 自怼圈 2019 叒招新++FAQ ~ DebugUself with DAMA ;-) 2018.12.1自怼圈招新 ~ DebugUself with DAMA ;-) It s all Text 重生 ~ DebugUself with DAMA ;-) 私人树洞构筑快记 ~ DebugUself with DAMA ;-) aTL2 私人故事 ~ DebugUself with DAMA ;-) Easy Steak ~ DebugUself with DAMA ;-) CoolerRoomer 冷静盒子 v1.0 发布 ~ DebugUself with DAMA ;-) 不花钱的自怼圈游玩指南 ~ DebugUself with DAMA ;-)
PyENV 简介 ~ DebugUself with DAMA ;-)
2018-07-30 · via 自怼圈

Python 运行环境到底怎么才能舒服?

~ My Python Development Environment, 2018 Edition « Jacob Kaplan-Moss

Yes and No

每年都有好心人在嗯哼, 但是, 都没说到点儿上:

  • 专发运行时和系统运行时分离
  • 多版本运行时共存
  • 多工程模块依赖桟分离管理
  • 远程主机运行时相同体验

以上, 才是 Python 长期嗯哼时,最要命的几个需求…

背景

开始俺也是盲目的直接安装到系统 Python 运行时系统中

当然, 那时还在 windows NT 环境中(05年前)

然后, 有了 virtualenv , 可是, 这货只是将依赖模块堆放到工程目录中而已, 无法作到, 不同工程使用相同模块依赖桟;

终于撞到 PyENV 才通透了下来

PyENV

~ pyenv/pyenv: Simple Python version management

引发嗯哼:

「 Y-北京: 到底为啥要用 pyenv 啊. 要用 Python3 吗? 」
- - - - - - - - - - - - - - -
「 Y-北京: 我以为这个只是用来切换 2与3的虚拟机...所以一直就没弄... 」
- - - - - - - - - - - - - - -
「 Y-北京: 对, 我就是一直以为只有这个作用啊. 」
- - - - - - - - - - - - - - -
「 A-杭州: 大妈说的也是这用法... 」
- - - - - - - - - - - - - - -

pyenv 可以集中管理配置主要 5种100多版本的 Python 运行环境 以及具体任何一个版本环境中和工程匹配的任意模块桟

PyENV 真正的妙处:

  • 这儿的 ENV 是两层意思
  • 祼 PyENV 是版本环境,
  • 然后配合 pyenv-virtualenv 插件
  • 才是项目管理用的哪….
  • 俺一般是先安装一个干净的版本环境

然后

$ pyenv virtualenv 3.6.3 AI363

  • 复制出一个 AI363 工程环境.
  • 在工程环境中一但配置好需要的各种大型模块后,
  • 就可以在 任何一个新工程目录中用

$ pyenv local AI363

  • 绑定上 包含模块的运行时环境 …
  • 而任何时刻都可以用

$ pyenv versions

  • 来查询自己配置过哪些环境

然后

$ pyenv local 环境别称

瞬间穿越过去, 从而永远不用反复为一个项目安装相同的嗯哼

运行时

因为 PyENV 利用的是 Linux 类似系统的基础环境变量: env 的自动配置, 从而完成瞬间切换当前运行时,

所以, 在远程主机上各种 shell 脚本也可以利用相同机制从 crontab 等等环境中加载上依赖桟环境, 从而, PyENV 以及朋友们, 基本完成所有运行时环境配置的基本需求.

是也乎

「 h-东京: brew 在 /usr/local 下,完全没问题;用 virtualenv 每个项目都是独立的,也没问题 」
- - - - - - - - - - - - - - -

图样图森破:

0: /usr/local 是系统目录, 有复杂的 软链接结构, 权限也有特殊要求 1: virtualenv 的独立是有空间成本的 2: PyENV 则通过 env 实时操作将 virtualenv 的虚拟环境真正的集中管理起来, 秒速安装到任何一个工程目录上

这是没有规模使用 PyENV 时, 无法体验到的

「 S: Pipenv +autoenv 1000个项目,咱建1000个环境 」
- - - - - - - - - - - - - - -

空间浪费 1000倍哪

  • PyENV 中的 pip 用 pipenv 来管理是好的
  • 但是, 工程的模块依赖就不应该完全重来了
  • 用 PyENV 随时切换就好
  • 所以, 如果有 1000 个项目, 其中 999个基于相同的第3方模块
  • 那么, 管理两个依赖桟, 空间上就只有原先的 0.2% 而已

    「 Y-北京: 这个 local 和 global 有啥区别? 」


文档中有写哪

  • local 是你当前目录
  • global 就是系统运行时, macOS 自己用的

对手残党推荐:pyenv/pyenv-doctor: Verify pyenv installation

「 Yixuan-北京: local 相当于, 我 cd 到某个文件夹, 然后 local 一下, 就嗯哼了整个文件夹下的环境? 」
- - - - - - - - - - - - - - - > 更加简洁:

0: 你 local 设定一次 1: 下次 cd 进来就自动完成指定环境的加载 2: 问题在, 长期不用时, 已经删除的环境尝试绑定就绑定不上了 3: 其实只是在目录中 .python-version 文件写入个别名, 就象 gh-pages 中的 CNAME 一样原理


FAQ:

自怼圈 -> 营造被动节奏外韵律

每年 4.1/8.1/12.1 定时开放报名进入

PS:

任何问题, 随时邮件提问可也:

[email protected]

大妈的多重宇宙 - YouTube

全新自媒体系列...科学幻想,读书,说故事...
点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:
Zoom.Quiet’s Chaos42 | Substack


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


蟒营®编程思维提高班Python版

**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发: