博客主页:https://blog.csdn.net/mukes
欢迎点赞收藏⭐留言如有错误敬请指正!
本文由 mukes 原创,首发于 csdn
在网上找了好一些资料,发现介绍 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 入门,那么用不用虚拟环境都不影响。
在 Pycharm 创建一个新项目。
现 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 环境中进行包的管理
Virtualenv 一般配合 requirements.txt 文件对项目的依赖库进行管理。
requirements.txt 的格式如下:
appdirs==1.4.4
beautifulsoup4==4.9.3
certifi==2020.12.5
chardet==4.0.0
distlib==0.3.1
fake-useragent==0.1.11
filelock==3.0.12
idna==2.10
lxml==4.6.3
pipenv==2020.11.15
requests==2.25.1
six==1.15.0
soupsieve==2.2.1
urllib3==1.26.4
useragent==0.1.1
virtualenv==20.4.4
virtualenv-clone==0.5.4
这样的结构让人一目了然,且方便项目移植,当你克隆一个含有 requirements.txt 文件的项目,可以通过相关命令一键下载所有的依赖库。
requirements.txt 文件生成
打开 Pycharm ,Tool 》Sync Python Requirements
根据步骤自动生成一个 requirements.txt 文件。
打开 Pycharm 左下角的 Terminal(终端),输入以下代码:
pip freeze > requirements.txt
根据 requirements.txt 文件安装依赖库
pip install -r requirement.txt
更多详情 https://www.jetbrains.com/help/pycharm/2021.1/managing-dependencies.html
首先,当前版本的 Pycharm(2021.1.1) 没有内置 Pipenv,需要安装。
打开 cmd ,运行以下命令以确保系统中已安装 pip:
pip --version
pipenv 通过运行以下命令进行安装:
pip install --user pipenv
安装成功后在 cmd 输入以下命令:
py -m site --user-site
,会返回 pipenv.exe 所在文件夹。
如:C:\Users\admin\AppData\Roaming\Python\Python39\site-packages
为了方便起见,可以将 pipenv.exe
所在文件夹 Scripts 添加到 PATH 环境变量中
setx PATH "%PATH%;C:\Users\admin\AppData\Roaming\Python\Python39\Scripts"
打开 Pycharm ,创建一个新项目。
通过 Pipenv 创建的项目,虚拟环境并不在本项目的目录下,而是在 C:\Users\用户名\.virtualenvs
文件夹下。
Pipenv[官网]是 requests 库 的作者写的,因为 requirements.txt 的管理并不能尽善尽美,可能存在一些问题。
在 Pipenv 虚拟环境中不用 requirements.txt,Pipfile 是 Pipenv 虚拟环境用于管理项目依赖项的专用文件。 该文件对于使用 Pipenv 是必不可少的。 当为新项目或现有项目创建 Pipenv 环境时,会自动生成 Pipfile。
Pipfile 的用法如下:
通过修改此 packages
部分来添加新的程序包依赖项。
[packages] |
每当您修改 Pipfile 文件时,PyCharm 都会建议执行以下操作之一:
更多详情https://www.jetbrains.com/help/pycharm/2021.1/using-pipfile.html
当前版本的 Pycharm(2021.1.1) 也没有内置 Conda ,需要安装。
打开 Pycharm ,创建一个新项目。
利用 Anaconda 进行虚拟环境包的管理
pip
命令安装包即可。Ctrl+Alt+S
或者 File 》Setting 》Python Interpreter引用: