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 卸载当前所以依赖,然后安装最新包

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Batch示例教程

    Spring Batch示例教程SpringBatch示例教程欢迎使用SpringBatch示例。SpringBatch是一个用于执行批处理作业的弹簧框架模块。我们可以使用spring批处理来处理一系列作业。目录[隐藏]1SpringBatch示例 1.1SpringBatch示例 1.2Spring批处理示例目录结构 1.3SpringBatchMaven依赖项 …

    2022年5月28日
    102
  • oracle date_trunc_oracle中truncate用法

    oracle date_trunc_oracle中truncate用法PostgreSQL与Oracle对应的函数一、对应的函数1.sysdateoraclepgsqlsysdatecurrent_date、current_timestampnvlcoalescetruncdate_trunc(text,timestamp)…文章rayner2018-01-05842浏览量Oracle日期显示问题以及trunc方法的使用我们先来假设这么一个场景,只要输入一个…

    2025年7月25日
    3
  • Zookeeper分布式锁代码实现[通俗易懂]

    目录原生API操作ZKWatch机制分布式锁思路Zookeeper分布式锁的代码实现zkclientCurator原生API操作ZK什么叫原生API操作ZK呢?实际上,利用zookeeper.jar这样的就是基于原生的API方式操作ZK,因为这个原生API使用起来并不是让人很舒服,于是出现了zkclient这种方式,以至到后来基于Curator框架,让人使用ZK…

    2022年4月12日
    46
  • php 中使用cURL发送get/post请求,上传图片,批处理

    php 中使用cURL发送get/post请求,上传图片,批处理

    2021年10月29日
    36
  • win10启动文件丢失或损坏如何解决_miflash出现灾难性故障

    win10启动文件丢失或损坏如何解决_miflash出现灾难性故障原本昨天一切正确的电脑,今天打开电脑想新建一个文件夹的时候,竟无法成功,提示【一个意外错误使你无法创建该文件夹。如果你继续受到此错误,可以使用错误代码来搜索有关此问题的帮助。错误0x8000FFFF:灾难性故障】。小编真的是无奈啊,还能怎么办,上网搜索呗,出现的这个问题的磁盘还是之前的机械硬盘,以为已经把磁盘重新格盘,删除分区,重建分区,应该是没有问题了把,结果出现了几次问题都在这个机械硬盘里…

    2022年9月24日
    1
  • 语音合成综述

    语音合成综述title:语音合成综述tags:新建,模板,小书匠grammar_cjkRuby:true语音相关基础知识点:时域信号:一维原始信号傅里叶变换:得到频域特征短时傅里叶变换:傅里叶变换得到了频域信号,但是丢失了时域信号,所欲通过STFT得到时频信号梅尔频谱倒谱系数:单单频率信号表达不足,为了更加和人的耳朵听觉相符,我们使用了mel窗滤波,得到人耳的频率段幅度系数梅尔声谱…

    2022年6月26日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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