Pipenv一键搭建python虚拟环境

  • 由于python2和python3在部分语法上不兼容, 导致有人打趣道:"Python2和Python3是两门语言"
  • 对于初学者而言, 如果同时安装了python2和python3, 那运行python程序就可能会遇到2和3混用的尴尬
  • 为解决python不同版本混用的尴尬,避免污染系统python的依赖包环境, 我们需要创建虚拟环境, 将python2和python3隔离使用

pipenv的优势:

  • 以前我们搭建虚拟环境需要学习使用virtualenv和virtualenvwrapper,在虚拟环境内管理软件依赖包需要学习使用pip, 而有了pipenv, 前面几个就可以不用学了...
  • 以前我们需要将虚拟环境依赖包的导出为requirements.txt, 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成PipfilePipfile.lock, Pipfile会随着项目,当我们安装时只需在PipfilePipfile.lock所在的目录下运行pipenv install

安装pipenv

  • 方法一: ubuntu用apt安装
sudo apt install software-properties-common python-software-properties
sudo add-apt-repository ppa:pypa/ppa
sudo apt update
sudo apt install pipenv
  • 方法二: windows用pip安装
pip install pipenv
  • 方法三: MacOS直接使用brew安装
brew install pipenv

快速创建并进入虚拟环境

  • 前提条件: 系统已安装python2和python3
# 创建python3环境
pipenv --three
# 创建python2环境
pipenv --two
# 在上一步新建环境的目录下,运行此命令才有效
pipenv shell

  • 小技巧: 如果子级目录的父级目录已经创建过虚拟环境, 则子级目录无法创建虚拟目录(子级目录无法生成Pipfile, 子级默认会使用父级的虚拟环境), 如果确实需要在子级目录创建独立的虚拟环境,可以运行pipenv --where 获取父级虚拟环境的名字, 根据虚拟环境的前半部分名字, 确定父级目录的位置, 然后删除父级目录下的Pipfile, Pipfile.lock, 运行exit退出父级虚拟环境,然后回到子目录,运行pipenv --three创建子目录的虚拟环境即可

在虚拟环境管理依赖包

  • 安装依赖包 yagmail requests
pipenv install yagmail requests
  • 查看已安装软件
pipenv graph

  • 删除依赖包yagmail
pipenv uninstall yagmail

退出虚拟环境

exit

扩展命令(不看也没关系)

  • 查看虚拟环境python解释器所在位置
pipenv --py
  • 查看虚拟环境所在位置
pipenv --venv
  • 使用更底层的命令pip freeze
pipenv run pip freeze
  • 只在安装开发阶段使用的软件包(和npm类似)
pipenv install pytest --dev
  • 安装Pipfile.lock的所有包(完整移植开发环境)
pipenv sync

小结:

  • pipenv借鉴了npm管理包的方式, 与virtualenv和virtualenvwrapper相比, pipenv对新书要更友好一些,推荐学习~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

再谈Android动态链接库

前不久,我们准备将自己开发的视频播放sdk提供给公司其他部门,在打包的时候,同事问了我一个问题,为什么我们打sdk的时候需要分别提供armeabi和arm64-...

2367
来自专栏专注研发

MyBatis Generator的使用

对于自动生成这件事吧,我本人中立,一直没用过,主要是因为浅尝辄止,它生成的东西有些懒得看,用一下还是挺舒服的

9212
来自专栏移动开发

关于友盟分享的小问题

1.目前碰到一个问题是这样的:将友盟分享作为一个工程依赖的方式引入项目中,而你的的工程项目中如果有同名的资源文件,就有可能如下问题(找不到引用id)

2303
来自专栏SDNLAB

从一个 Neutron DHCP 补丁谈起

前言 前几个星期,社区通过了一个 Patch 来解决一个遗留很久的 DHCP 相关的问题,这个 Patch 并不复杂(review 地址是 https://re...

4027
来自专栏数据和云

【云端起舞】快速查找Oracle公有云服务上VM服务器的IP地址

编辑手记:在使用SSH连接数据库的时候,大多数的公有云服务通过IP地址与对应的VM服务器关联,这篇文章将会引导你查找Oracle公有云服务上连接到VM实例的IP...

3766
来自专栏上善若水

java002-java学习路线

​ JSP(Java Server Pages) : Java服务器页面

1203
来自专栏子勰随笔

Gradle Android插件使用的中那些特别注意的点

2596
来自专栏技术/开源

开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计

Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,...

2279
来自专栏技术/开源

开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计

Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,...

2745
来自专栏瞎说开发那些事

[微服务系列] 服务治理--Eureka

2206

扫码关注云+社区

领取腾讯云代金券