Pycharm 中 virtualenv、pipenv、conda 虚拟环境的用法

文章目录

  • 前言

  • 虚拟环境的通俗介绍

  • 虚拟环境和非虚拟环境该怎么选?

  • 通过 Virtualenv 方式创建虚拟环境

  • 通过 Pipenv 方式创建虚拟环境

  • 通过 Conda 方式创建虚拟环境


前言

在网上找了好一些资料,发现介绍 Pycharm 虚拟环境的不多,查了一些资料,并做个总结。
本文主要是介绍 Pycharm 中的虚拟环境,而非 Python 中的命令式虚拟环境。


虚拟环境的通俗介绍

引用https://www.runoob.com/manual/pythontutorial3/docs/html/venv.html#id2

Python 应用程序经常会使用一些不属于标准库的模块。应用程序有时候需要某个特定版本的库,因为它需要一个特定的 bug 已得到修复的库或者它是使用了一个过时版本的库的接口编写的。
 
这就意味着可能无法安装一个 Python 来满足每个应用程序的要求。如果应用程序 A 需要一个特定模块的 1.0 版本,但是应用程序 B 需要该模块的 2.0 版本,这两个应用程序的要求是冲突的,安装版本 1.0 或者版本 2.0 将会导致其中一个应用程序不能运行。
 
这个问题的解决方案就是创建一个 虚拟环境 (通常简称为 “virtualenv”),包含一个特定版本的 Python,以及一些附加的包的独立的目录树。
 
不同的应用程序可以使用不同的虚拟环境。为了解决前面例子中的冲突,应用程序 A 可以有自己的虚拟环境,其中安装了特定模块的 1.0 版本。而应用程序 B 拥有另外一个安装了特定模块 2.0 版本的虚拟环境。如果应用程序 B 需求一个库升级到 3.0 的话,这也不会影响到应用程序 A 的环境。


虚拟环境和非虚拟环境该怎么选?

如果你直接在 Pycharm 创建一个项目而不创建虚拟环境,那么你安装的第三方包都会安装到系统 Python 解释器的 site-packages 文件夹下,如我的 C:\Python\Python39\Lib\site-packages

创建越多的项目,安装的库越多。当你又新建一个项目,必定会把 site-packages 下的所有库都导进来,可能有一些库你这个项目根本就不需要,但是又不能删除(因为别的项目有在用),这时候就需要虚拟环境了。

如果你只创建一两个项目学习 Python 入门,那么用不用虚拟环境都不影响。


通过 Virtualenv 方式创建虚拟环境

在 Pycharm 创建一个新项目。

  • File 》New Project 》Pure Pyhon,如下图所示:

    现 Pycharm 2021.1 版创建 Virtualenv环境已默认没有 venv 文件夹,而是和项目名一致,不知是否个例

通过 Virtualenv 创建的虚拟目录是放在本项目的下的 venv 文件夹中。

  • 如果项目地址是 E:\PycharmProjects\pythonProject

  • 则虚拟环境的地址就是 E:\PycharmProjects\pythonProject\venv

  • 虚拟环境中的库 E:\PycharmProjects\pythonProject\venv\Lib\site-packages

图中的 基本解释器系统 Python 解释器,即自行在官网下载并配置好环境变量了的,一般系统 Python 解释器的第三方库都在 site-packages 目录下,比如我的 C:\Python\Python39\Lib\site-packages.

在 Virtualenv 环境中进行包的管理

  • Ctrl+Alt+S 或者 File 》Setting 》Python Interpreter

Virtualenv 一般配合 requirements.txt 文件对项目的依赖库进行管理。

requirements.txt 的格式如下:

appdirs==1.4.4beautifulsoup4==4.9.3certifi==2020.12.5chardet==4.0.0distlib==0.3.1fake-useragent==0.1.11filelock==3.0.12idna==2.10lxml==4.6.3pipenv==2020.11.15requests==2.25.1six==1.15.0soupsieve==2.2.1urllib3==1.26.4useragent==0.1.1virtualenv==20.4.4virtualenv-clone==0.5.4

这样的结构让人一目了然,且方便项目移植,当你克隆一个含有 requirements.txt 文件的项目,可以通过相关命令一键下载所有的依赖库。

requirements.txt 文件生成

  1. 打开 Pycharm ,Tool 》Sync Python Requirements
    根据步骤自动生成一个 requirements.txt 文件。

  2. 打开 Pycharm 左下角的 Terminal(终端),输入以下代码:
    pip freeze > requirements.txt

根据 requirements.txt 文件安装依赖库

  • 若是导入一个新项目,且含有 requirements.txt 文件,则可根据 requirements.txt 安装所有的依赖库
    pip install -r requirement.txt

更多详情 https://www.jetbrains.com/help/pycharm/2021.1/managing-dependencies.html


通过 Pipenv 方式创建虚拟环境

首先,当前版本的 Pycharm(2021.1.1) 没有内置 Pipenv,需要安装。

  1. 打开 cmd ,运行以下命令以确保系统中已安装 pip:
    pip --version

  2. pipenv 通过运行以下命令进行安装:
    pip install --user pipenv

  3. 安装成功后在 cmd 输入以下命令:
    py -m site --user-site ,会返回 pipenv.exe 所在文件夹。
    如:C:\Users\admin\AppData\Roaming\Python\Python39\site-packages

  4. 为了方便起见,可以将 pipenv.exe 所在文件夹 Scripts 添加到 PATH 环境变量中
    setx PATH '%PATH%;C:\Users\admin\AppData\Roaming\Python\Python39\Scripts'

打开 Pycharm ,创建一个新项目。

  • File 》New Project 》Pure Pyhon,如下图所示:

通过 Pipenv 创建的项目,虚拟环境并不在本项目的目录下,而是在 C:\Users\用户名\.virtualenvs 文件夹下。

Pipenv[官网]是 requests 库 的作者写的,因为 requirements.txt 的管理并不能尽善尽美,可能存在一些问题

在 Pipenv 虚拟环境中不用 requirements.txt,Pipfile 是 Pipenv 虚拟环境用于管理项目依赖项的专用文件。 该文件对于使用 Pipenv 是必不可少的。 当为新项目或现有项目创建 Pipenv 环境时,会自动生成 Pipfile。

Pipfile 的用法如下:

  1. 新建项目的 Pipfile 文件:

  2. 通过修改此 packages 部分来添加新的程序包依赖项。

    [packages]

    requests = “*”

  3. 每当您修改 Pipfile 文件时,PyCharm 都会建议执行以下操作之一:

    • pipenv lock— 将新要求记录到 Pipfile.lock 文件中。

    • pipenv update— 将新要求记录到 Pipfile.lock 文件中,并将缺少的依赖项安装在 Python 解释器上。

更多详情https://www.jetbrains.com/help/pycharm/2021.1/using-pipfile.html


通过 Conda 方式创建虚拟环境

当前版本的 Pycharm(2021.1.1) 也没有内置 Conda ,需要安装。

  1. 打开 Anaconda 官网选择适合你电脑的版本即可。

  2. 也可在清华大学开源软件镜像站下载,这个速度较快。

打开 Pycharm ,创建一个新项目。

  • File 》 New Project 》Pure Pyhon,如下图所示:

利用 Anaconda 进行虚拟环境包的管理

  1. 打开 Anaconda Navigator 图形界面 》Environment 》选需要安装包的环境 》 点绿色按钮 》Open Terminal,在 Terminal(终端)中用 pip 命令安装包即可。

  2. Ctrl+Alt+S 或者 File 》Setting 》Python Interpreter


引用:

  1. Pycharm - configuring-python-interpreter [https://www.jetbrains.com/help/pycharm/2021.1/configuring-python-interpreter.html]

  2. Pipenv 官网 [https://pipenv.pypa.io/en/latest/]

(0)

相关推荐

  • Python小白别再折腾开发环境了,一劳永逸的搭建方法

    网上教程五花八门,读者吐槽最多的,也都是怎么搭建开发环境. 对于小白来说,开发环境搭建,是必过的第一关. 记得自己刚学 Python ,还是小白的时候,最爱做的一件事就是:折腾开发环境. 代码还没写几 ...

  • 关于Python虚拟环境搭建的解读

    大多数小伙伴在第一次接触Python的时候都会被它强大的包所吸引,想要写一个网站可以使用Django,想要做数学运算就想到了Numpy,想做数据分析可以用Pandas等等. 但是安装的包越多,Pyth ...

  • (22条消息) conda、miniconda、anaconda的区别以及在pycharm中选择conda的虚拟环境

    可能从conda.miniconda和anaconda三个名词来说用得最多比较熟悉的应该是anaconda吧,包办一切,帮我们安装好了很多包和环境,我们都喜欢用现成的东西,懒得自己捣鼓.最近刚好有项目 ...

  • 使用poetry+conda配置虚拟环境

    有关虚拟环境的相关的我之前也介绍过,python高级(4)-- 虚拟环境安装使用 比如pipenv,还有virtualenv之类的,还有本篇文章的主角 -- poetry 到底哪个更好用呢,看你个人吧 ...

  • PythonpyQt5适于新手上路(第一篇环境和配置)

    PythonpyQt5适于新手上路(第一篇环境和配置)

  • Anaconda+Pycharm环境下的PyTorch配置方法

    文章目录 写给新手的话 `pycharm`是什么,为什么让我指定`interpreter` `pip`又是什么 `conda`,`vitualenv`,`pipenv` 又是什么 `anaconda` ...

  • 最好用的 Python 虚拟环境,没有之一

    来源:Python 技术「ID: pythonall」 一般我们创建 Python 项目的时候都会创建一个虚拟环境,这样做的好处就是会把项目环境和操作系统环境区分开来,避免把操作系统环境弄乱. 还有一 ...

  • 一文教你配置得心应手的Python

    Python这几年热度逐渐上升,在很多高校Python也被列为通识课程,之所以如此受欢迎正是由于它的高效.简洁.易用.强大的第三方库等优点.如今在web开发.人工智能.大数据等方便应用非常广泛.不管你 ...

  • 不用 pip install,你养我吗?

    我们在开发 Python 项目的时候,我们总会使用到这么几个玩意: pip requirements.txt vent 当你创建一个 Python 项目的时候,你会先整一个虚拟环境(virtualen ...

  • 八字命理学中辰戌丑未有哪些用法?

    辰戌丑未的用法 在地支四旺(子午卯酉).四生(寅申巳亥).四墓(辰戌丑未)中,四旺气专而纯,五行本气不发生变化.四生因气杂会因合化而发生变化,但比起四墓来还是比较单纯容易辨别.最复杂最容易变化的就是四 ...

  • 介绍英语中的4个'也'的用法

    介绍英语中的4个'也'的用法

  • 韩语中几个非敬语的用法

     -느냐/-(으)냐/-(이)냐 "-느냐"接在动词词干.时称词后,"-(으)냐"接在形容词词干后,"-(이)냐"接在体词谓词形.尊称词尾后 ...

  • 一德:天机尽泄!八字中合的真正含义及用法!

    八字中的合是一种吸引力. 你合到的东西,不一定是你能得到的,也不一定是你人生最好的. 合到的是对你而言,是和你有纠缠或者对你有吸引力的一个东西. 也就是当你去合一个东西的时候,比如你去合财,合官,你这 ...

  • 缠中说禅MACD指标的用法(1)

    MACD指标是<缠中说禅>中最重要的辅助指标,它有一套非常独特的用法,当然,这些用法,也可以让没有学过缠论的朋友使用,你只要把缠论中的中枢形态理解成一个箱体震荡就行了,需要区分的是上涨过程 ...

  • Excel中KURT函数的语法和用法

    本文介绍Microsoft Excel中KURT函数的语法和用法. 函数说明 KURT函数主要作用是返回数据集的峰值.峰值反映与正态分布相比某一分布的尖锐度或平坦度.正峰值表示相对尖锐的分布.负峰值表 ...

  • Excel中INTERCEPT函数的语法和用法

    函数说明 INTERCEPT函数的主要作用是利用现有的 x 值与 y 值计算直线与 y 轴的截距.截距为穿过已知的 known_x's 和 known_y's 数据点的线性回归线与 y 轴的交点.当自 ...

  • 八字中“辰戌丑未”的用法

    在地支四旺(子午卯酉).四生(寅申巳亥).四墓(辰戌丑未)中,四旺气专而纯,五行本气不发生变化.四生因气杂会因合化而发生变化,但比起四墓来还是比较单纯容易辨别.最复杂最容易变化的就是四墓之气,因为寒暖 ...