Pipenv一键搭建python虚拟环境的方法
作者:木子昭 发布时间:2022-07-15 03:49:41
由于python2和python3在部分语法上不兼容, 导致有人打趣道:"Python2和Python3是两门语言"
对于初学者而言, 如果同时安装了python2和python3, 那运行python程序就可能会遇到2和3混用的尴尬
为解决python不同版本混用的尴尬,避免污染系统python的依赖包环境, 我们需要创建虚拟环境, 将python2和python3隔离使用
pipenv的优势:
以前我们搭建虚拟环境需要学习使用virtualenv和virtualenvwrapper,在虚拟环境内管理软件依赖包需要学习使用pip, 而有了pipenv, 前面几个就可以不用学了...
以前我们需要将虚拟环境依赖包的导出为 requirements.txt
, 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 Pipfile
和 Pipfile.lock
, Pipfile会随着项目,当我们安装时只需在 Pipfile
和 Pipfile.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对新书要更友好一些,推荐学习~
来源:https://www.jianshu.com/p/1441169b3dbe


猜你喜欢
- python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989
- 话不多说,请看代码:<!DOCTYPE HTML> <html> <head> <meta cha
- 在开发C/S结构的大型数据库应用软件时,一般情况下,软件开发人员和数据库设计人员并不是同一个人,这就需要协商好一些即可由程序设
- 原来在一本书上看到过,从多个tfrecord文件中读取数据的方法,今天想用在网上找了一下,现在记录一下,免得自己以后忘记了又不好找,tfre
- 字符串索引示意图字符串切片也就是截取字符串,取子串Python中字符串切片方法字符串[开始索引:结束索引:步长]切取字符串为开始索引到结束索
- 起步在 Django 的模型中新加了一个日期的字段:import datetimeclass Instance(models.Model):
- 任何使用yield的函数都称之为生成器,如:def count(n): while n > 0: &nb
- 本文实例讲述了python面试题之列表声明。分享给大家供大家参考,具体如下:下面程序输出的结果为?val = [['a']*
- 今天我们来学习一下 异常语法 中的另一个成员 —> finally ; 通过学习 finally ,可以帮助我们更
- mysql连接超时和mysql连接错误在生产环境中,偶尔且不规律的出现mysql连接超时和创建连接出错的问题:15-09-2020 13:2
- 程序的功能有了个大体的框架,其实可以自己添加一些功能,比如开始的数据库连接 ,可以先设置变量然后通过INIT() 来选择
- 起因前端日子写完的Python入库脚本,通过直接读取配置文件的内容(包含了数据库的ip,数据库的用户名,数据库的密码),因为配置文件中的数据
- 1.什么是标准库(Standard Library)标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象2.Obj
- 1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大
- 总所周知bilibili是没有办法直接查看弹幕的发送者的
- 利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。1、创建保存备份文件的路径/mysqldata#mkdi
- 如下所示:###方法1:用shift函数,不用通过循环import pandas as pdimport numpy as npimport
- 视图:mysql中的视图,视图与表有很多相似的地方,视图也是由若干个字段以及若干条记录构成,视图也可以作为select语句的数据源。视图中保
- 前言当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们。开发组件py
- 以前把守护进程与后台任务搞混了,后面看了文章才知道这两者的区别,写此文表达自己对守护进程的理解.1:什么是守护进程?所谓守护进程是一种是 L