Python的包管理与虚拟环境

Tools

包管理:pip / conda

虚拟环境:virtualenv

pip

禁用全局安装

今天无意中把要装在虚拟环境里的包装成了全局,而且还是用的批量安装列表,按完回车发现忘记切换环境心都凉了。。幸好仔细一看发现大部分都是提示了已安装,但还是有两个漏网之鱼QAQ

为了避免惨剧再次发生,赶紧禁用了全局环境下的pip

~/.bashrc中加入如下命令(用zsh的往~/.zshrc写):

export PIP_REQUIRE_VIRTUALENV=true # Forbid pip install in global environment
gpip() { # global pip
    PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

可以看到还顺便添加了一个函数,这样在确实需要全局pip时就可用gpip来代替了。

此时所有的pip命令都必须在虚拟环境中运行,即便是pip list这种单纯的查询函数也必须通过gpip来调用。。感到心安。

conda

virtualenv

创建虚拟环境
$ virtualenv testenv

当前目录下将出现一个名为testenv的文件夹

进入虚拟环境
$ source testenv/bin/activate

命令行提示符将带上(testenv)前缀

退出虚拟环境
$ deactive

前缀将消失,回到全局环境

删除虚拟环境

退出虚拟环境后删除整个文件夹即可

while(true) -1s;

2 声望
0 粉丝
0 条评论
推荐阅读
python里打印list的四种方法
原文链接标题:Print lists in Python (4 Different Ways)用for循环来打印 {代码...} 结果1 2 3 4 5用 * 星号来打印 {代码...} 结果 {代码...} 把list转换为str来打印 {代码...} 结果 {代码...} 用map把数组里非...

chiiinnn阅读 10.2k

封面图
Ubuntu20.04 从源代码编译安装 python3.10
Ubuntu 22.04 Release DateUbuntu 22.04 Jammy Jellyfish is scheduled for release on April 21, 2022If you’re ready to use Ubuntu 22.04 Jammy Jellyfish, you can either upgrade your current Ubuntu syste...

ponponon1阅读 4k评论 1

日常Python 代码片段整理
1、简单的 HTTP Web 服务器 {代码...} 2、单行循环List {代码...} 3、更新字典 {代码...} 4、拆分多行字符串 {代码...} 5、跟踪列表中元素的频率 {代码...} 6、不使用 Pandas 读取 CSV 文件 {代码...} 7、将列表...

墨城2阅读 296

Unicode 正则表达式(qbit)
前言本文根据《精通正则表达式》和 Unicode Regular Expressions 整理。本文的示例默认以 Python3 为实现语言,用到 Python3 的 re 模块或 regex 库。基本的 Unicode 属性分类 {代码...} 基本的 Unicode 子属性Le...

qbit阅读 4.3k

Python + Sqlalchemy 对数据库的批量插入或更新(Upsert)
由于不同数据库对这种 upsert 的实现机制不同,Sqlalchemy 也就不再试图做一致性的封装了,而是提供了各自的方言 API,具体到 Mysql,就是给 insert statement ,增加了 on_duplicate_key_update 方法。

songofhawk1阅读 1.9k评论 4

封面图
Go for 循环有时候真的很坑。。。
大家好,我是煎鱼。不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics 。著名的硬核大佬 Russ Cox 表示他一直在研究这个问题,并表示十...

煎鱼阅读 3.5k

打脸了兄弟们,Go1.20 arena 来了!
大家好,我是煎鱼。大概半年前,我写过一篇文章《Go 要违背初心吗?新提案:手动管理内存》。有兴趣了深入解的同学,可以再回顾一下。当时我们还想着 Go 团队应该不会接纳,至少不会那么快:懒得翻也可以看我再次...

煎鱼阅读 3.2k

while(true) -1s;

2 声望
0 粉丝
宣传栏