pycharm使用虚拟环境_pycharm配置虚拟环境

pycharm使用虚拟环境_pycharm配置虚拟环境Pipenv,它的项目简介为PythonDevelopmentWorkflowforHumans,是Python著名的requests库作者kennethreitz写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理Python包,现在它也已经是Python官方推荐的包管理工具。溯源起初,Python没有便利的方式来安装软件包。后来,Easy…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

2908cdd8611287b2ff8d12511646f94a.png

Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,现在它也已经是 Python 官方推荐的包管理工具。

溯源

起初,Python没有便利的方式来安装软件包。

后来,Easy Install 安装方便,但卸载不需要的软件包并不容易。

接着,pip逐渐被人们熟练的使用,其具有方便的安装和卸载等诸多优点,但当用户使用不同版本的相同库的时候。不能将软件包彼此隔离。

随着虚拟环境的发展,出现了很多管理虚拟环境的工具:virtualenv,venv,pyenv,pyenv-virtualenv等。它们都可以在pip和requirements.txt文件中很好地发挥作用。

以前我们需要将虚拟环境依赖包的导出为 requirements.txt , 一旦依赖包变动,就要重新导出,而pipenv会自动帮我们生成 Pipfile 和 Pipfile.lock ,Pipfile会随着项目,当我们安装时只需在 Pipfile 和 Pipfile.lock 所在的目录下运行 pipenv install即可。

Pipenv优点。

pipenv由requests库作者Kenneth Reitz开发,结合了pip及virtualenv的功能和优点,其目的是替代virtualenv和pyenv。

  • 解决了requirements.txt依赖管理局限的不确定构建问题,提供的pipenv替代pip并自带一个依赖清单Pipfile和依赖锁定Pipfile.lock。
  • 有效的的解决了多个项目依赖不同版本的子模块的问题,自动关联项目相关的virtualenv,能够快速的加载virtualenv。
  • 解决了依赖分析问题,使用pipenv graph命令可以看到依赖树
  • 广泛使用 Hash 校验,保证安全性。
  • 可通过自动加载 .env 读取环境变量,简化开发流程。

使用

PyCharm 从 2018.2 版本开始已经支持 pipenv 。

安装

pip install pipenv

创建环境

一行命令搞定 virtualenv 和 pipfile 的初始化(不初始化则将使用默认版本的Python),它会在你的用户目录下对你的 virtualenv 进行统一管理。如果当前目录下有 requirements.txt 文件,它会非常贴心地帮你自动转换。(注意:切换至新建的python项目目录)。

cd toutiao

初始化一个 python3 的环境

pipenv --three

初始化一个 python2 的环境

pipenv --two

初始化特定版本的环境

pipenv --python 3.6

进入 / 退出环境

进入环境

pipenv shell

退出环境

exit

删除虚拟环境

pipenv --rm

安装 / 更新 / 卸载依赖

pipenv install 创建了项目的虚拟环境,

675a6347a293c54a2f2c83c00eaf785c.png

Pipfile

Pipfile文件,source部分用来设置仓库地址,packages部分用来指定项目依赖的包,dev-packages部分用来指定开发环境需要的包,这样分开便于管理。

12e051d985cf5bfa48453a32766d02b7.png

Pipfile.lock

而Pipfile.lock中记录了当前环境中安装的依赖的版本号以及哈希,以保证每次装出来的依赖都是一致的,注意,任何情况下都不要手动修改 Pipfile.lock 文件!

pipenv install的时候有三种逻辑:

  • 如果目录下没有Pipfile和Pipfile.lock文件,表示创建一个新的虚拟环境;
  • 如果有,表示使用已有的Pipfile和Pipfile.lock文件中的配置创建一个虚拟环境;
  • 如果后面带诸如django这一类库名,表示为当前虚拟环境安装第三方库。

安装项目已有的所有依赖,加–dev表示包括 Pipfile 的 dev-packages 中的依赖(通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。)。

pipenv install --dev

安装某个库。

pipenv install requests

安装指定版本的库,安装时加–dev表示加入到 dev 环境。

pipenv install parsel==1.3.1

从项目中更新某个库

pipenv update requests

更新所有的库

pipenv update

从项目环境中删除某个库

pipenv uninstall requests

另外,Pipefile 和 Pipefile.lock 都会按照你的操作进行自动的更新,如果需要手动修改包的依赖条件,手工编辑 Pipefile 并进行安装即可。

打印环境中已安装的包

pipenv graph

能够更清晰地展示现有依赖包。

锁定版本

更新 lock 文件锁定当前环境的依赖版本

pipenv lock

环境变量管理

如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。

例如写一个.env文件

echo "test=toutiao" > .env

之后pipenv shell进入虚拟环境,echo $test就能看环境变量的值toutiao已经设置好了。

运行python命令

pipenv run python toutiao.py

这将使用当前虚拟环境关联的Python解释器,执行命令。

Options

Usage: pipenv [OPTIONS] COMMAND [ARGS]…

Options:

–update 升级 pipenv, pip 到最新.

–where 输出项目的目录信息.

–venv 输出 virtualenv 的目录信息.

–py 输出 Python 解析器的路径.

–envs 输出环境变量的设置.

–rm 删除当前 virtualenv.

–bare Minimal output.

–completion Output completion (to be evald).

–man 显示使用手册.

–three / –two 使用 Python 3/2 来创建 virtualenv

–python TEXT 直接指定 Python 解析器.

–site-packages 拷贝系统 site-packages 到 virtualenv.

–jumbotron An easter egg, effectively.

–version 显示版本信息并退出.

-h, –help 显示当前信息并退出.

Commands:

check 检查安全漏洞和反对 PEP 508 标记在Pipfile提供.

graph 显示当前依赖关系图信息.

install 安装提供的包,并加入 Pipfile 的依赖清单中

lock 生成 Pipfile.lock.

open 在编辑器(vim)查看一个特定模块.

run 在 virtualenv 中执行命令.

shell 切换到 virtualenv 中.

uninstall 删除提供的包,并清理 Pipfile 的依赖清单中.

update 卸载当前所以依赖,然后安装最新包

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/175449.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Winform控件开发(1)——Label(史上最全)

    Winform控件开发(1)——Label(史上最全)作用:一般用于显示文本或者作为”按钮使用”,当作为显示文本使用时,通过设置label的Text属性实现,当作为“按钮使用时”,在lable的单击事件下注册事件即可,下面详细介绍label的属性:1、Name属性,该属性代表label类对象的名称,通过该属性可以获取到该label对象,如下图:该label对象名称为label1,当然也可以更改为其他名称2、AllowDrop属性,该属性的值是…

  • 【项目管理】现网故障处理

    【项目管理】现网故障处理

  • 【推荐】Java内存管理系列文章

    勿在流沙筑高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!博客首页 : http://blog.csdn.net/u010648555愿你我在人生的路上能都变成最好的自己,能…

  • lmdb数据库_Interbase数据库

    lmdb数据库_Interbase数据库LMDB全称为LightningMemory-MappedDatabase,就是非常快的内存映射型数据库,LMDB使用内存映射文件,可以提供更好的输入/输出性能,对于用于神经网络的大型数据集(比如ImageNet),可以将其存储在LMDB中…

  • Java 内存溢出思维导图

    Java 内存溢出思维导图

  • pycharm2021.11永久激活【中文破解版】

    (pycharm2021.11永久激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1M3Q9SD5XW-eyJsaWN…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号