前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pycharm使用虚拟环境_pycharm配置虚拟环境

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

作者头像
全栈程序员站长
发布2022-09-27 11:44:09
1.1K0
发布2022-09-27 11:44:09
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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 。

安装

代码语言:javascript
复制
pip install pipenv

创建环境

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

代码语言:javascript
复制
cd toutiao

初始化一个 python3 的环境

代码语言:javascript
复制
pipenv --three

初始化一个 python2 的环境

代码语言:javascript
复制
pipenv --two

初始化特定版本的环境

代码语言:javascript
复制
pipenv --python 3.6

进入 / 退出环境

进入环境

代码语言:javascript
复制
pipenv shell

退出环境

代码语言:javascript
复制
exit

删除虚拟环境

代码语言:javascript
复制
pipenv --rm

安装 / 更新 / 卸载依赖

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

675a6347a293c54a2f2c83c00eaf785c.png
675a6347a293c54a2f2c83c00eaf785c.png

Pipfile

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

12e051d985cf5bfa48453a32766d02b7.png
12e051d985cf5bfa48453a32766d02b7.png

Pipfile.lock

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

pipenv install的时候有三种逻辑:

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

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

代码语言:javascript
复制
pipenv install --dev

安装某个库。

代码语言:javascript
复制
pipenv install requests

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

代码语言:javascript
复制
pipenv install parsel==1.3.1

从项目中更新某个库

代码语言:javascript
复制
pipenv update requests

更新所有的库

代码语言:javascript
复制
pipenv update

从项目环境中删除某个库

代码语言:javascript
复制
pipenv uninstall requests

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

打印环境中已安装的包

代码语言:javascript
复制
pipenv graph

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

锁定版本

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

代码语言:javascript
复制
pipenv lock

环境变量管理

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

例如写一个.env文件

代码语言:javascript
复制
echo "test=toutiao" > .env

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

运行python命令

代码语言:javascript
复制
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 卸载当前所以依赖,然后安装最新包

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 溯源
  • Pipenv优点。
  • 使用
  • Options
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档