python虚拟环境配置
python虚拟环境配置一. 虚拟环境概览1. 什么是虚拟环境2. 虚拟环境有什么用3. 常用虚拟环境包管理工具二 .如何配置虚拟环境1. 使用pycharm配置虚拟环境(1)Virtualenv Environment(2)Conda Environment(3)Pipenv Environment(4)Poetry Environment2. 使用VS code配置虚拟环境3. 使用Anaco
python虚拟环境配置
一. 虚拟环境概览
1. 什么是虚拟环境
举个生栗子🌰:
李华有两台笔记本,工作室一台笔记本A,家里一台笔记本B(笔记本以下统称电脑)
电脑A里装了很多电脑B里没有的软件,电脑B装的都是比较低版本的软件
工作室里有很多家中没有的设备和工具,是完成工作必不可少的部分
上下班在工作室使用电脑A办公,处在 <工作室>
虚拟环境中,编译器为interpreter A
因为疫情原因在家使用电脑B办公,处在<家>
虚拟环境中,编译器为interpreter B
①李华在<工作室>
能利用电脑A及工作室的设备完成任务,同样的任务在<家>
中却完成不了
②李华在<家>
中设备较老旧,工作室全盘上了type-c接口而家中却还在使用micro-usb接口,
导致李华在将家中设备迁移到工作室后无法使用,将工作室的电脑搬回至家中同样不可使用
③好不容易处理好了环境间的适配问题,李华发现自己的编译器interpreter B
版本太旧,导致在工作室生成的文件处理不了,弄不好还得回家中继续完成任务。这样极大的降低了工作的效率,同样的,在家中通过编译器interpreter A
生成的文件,还是打不开,又需要回到编译器原来所在的位置继续处理
当将两个工作环境明确的分开时,工作效率能大幅提升,这个工作环境就类比于虚拟环境,同样的,哪天你换个地方重新开始一个新的项目时,你也需要重新创建一个新的虚拟环境来进行工作
如上举例可能还不是很清晰
可以多看看别的博主对虚拟环境的解释
2. 虚拟环境有什么用
虚拟环境的作用:
①将工作区与其他工作区区分开来,相互不影响,大大提高开发的速度
②不同工作区的编译器以及包版本各有不同,如果不创建虚拟环境而直接将包全部添加到编译器环境中,开发时可能会出现各种包不兼容的情况,实际上在开发过程中很多包框架都是固定的,版本对应关系很大。
比如pyqt5-tools
目前就只支持到3.9的python编译器,而你不知道怎么就是3.10的版本了,这时候你只是为了开发这个项目,与其重新创建编译器不如直接创建一个虚拟环境,就好比你在工作室直接买了一个不可移动的台式电脑(注意是不可移动,别跟我说你抬着个台式上下班),创建一个虚拟环境,在该虚拟环境中直接装载python3.9
以及相关绑定的所有包就可以了,而当你开发完,虚拟环境不再需要时,你可以直接删除虚拟环境所在的位置而连带将其之前装在的所有包一并清除而不会影响到你在其他位置安装的任何包。
工作室负责人带着工作室所有的设备跑路了,而你在家中的设备一份没少,你还不至于很伤心
③虽然开发依赖虚拟环境的必要性,但有的时候也不一定完全合适。比如创建虚拟环境需要的内存量还是比较大的,在没注意好虚拟环境的安装地址时,容易让内存盘见底。
总的来讲你可以这么理解
你在电脑上使用的软件也就是一个完整的虚拟环境
软件里包含了要使用的所有包和各种文件
这样你在使用该软件的时候就不会与其他软件出现干扰。
3. 常用虚拟环境包管理工具
①conda
②Virtualenv
③Pipenv
④Poetry
⑤python_vene
我所知道的、常用的
就这么多(‾◡◝)
而其中基本命令都可以由命令终端来控制
(所以,学好命令终端很重要)
在底下有相关的函数库可以索引
根据你想知道的包内容索引源文件即可
二 .如何配置虚拟环境
1. 使用pycharm配置虚拟环境
以下几种是pycharm上出现的可选选项框,根据需要选择不同的创建环境的方式,不过只是创建个环境,只要能够成功创建即可,不需要全部掌握
以上是常见的四种pycharm创建虚拟环境的方式
什么,你说有五种?
翻译翻译什么叫
System interpreter
“添加系统编译器”
打开该界面有两种方式
一种是右下角python interpreter
点击进入
点击右方小齿轮
出现add
和show all
都可以点击
点击add
直接出现配置界面
点击show all
后再点击左上角加号进入配置界面
另一种是
file->setting->project->python interpreter->Alt+insert
(1)Virtualenv Environment
- New environment:
location
是指你创建环境的位置
base interpreter
是指创建所使用的编译器,因为使用包创建,所以就不再需要独立安装编译器了
下面有两个选项
Ⅰ. inherit global site_packages
:继承全局站点包
勾选表示你可以继承全局函数包放到该环境使用
不勾选,在你创建的环境中就只包含编译器和编译器附带的几个基本包
(建议勾选)
Ⅱ. make available to all project
:使项目全局可用
勾选表示你创建的该虚拟环境在安装其他包的时候会同步安装在全局
不勾选,在你创建的环境中的包就与全局分割开
(不建议勾选)
对全局不太理解的话
我还是举个熟栗子🌰:
创建完虚拟环境前,勾选Ⅰ,你之前安装在非虚拟环境处的包就都能用了。如果没有勾选,很多包在你这环境底下是没有的
创建完虚拟环境后,勾选Ⅱ,你之后安装在该虚拟环境下的包就会出现在你安装其他包的下面,有时候你只是简单的输入些东西而不需要创建虚拟环境,这时候你的编译器底下就会出现你之前安装的所有包。
- Existing environment:
interpreter
一般情况下,这里的interpreter指的是你python.exe
所在的位置
如果你直接从文件中打开,pycharm会自动索引编译器所在的位置。
注意要将编译器和基编译器区分开来
如果你已经创建好了虚拟环境,就点击Existing environment
来配置该环境编译器即可
(2)Conda Environment
该工具包是随着conda
绑定在pycharm上的
而conda
又是跟随anaconda下载下来的
一般情况下,anaconda安装完成,conda
也同时安装完成
如果你没有下载anaconda又想使用conda
且又不想下载anaconda
可以指接从python官方函数库或者conda
官网上下载conda
并初始化使用
好了回到pycharm界面
conda和Virtualenv很相近
- New environment:
location
是指你创建环境的位置
base interpreter
是指创建所使用的编译器,因为使用包创建,所以就不再需要独立安装编译器了
Conda executable
相比于Virtualenv
所不同,是指索引调用conda
包的位置
可以使用命令查看conda
包位置:
where conda
其中显示如下信息
C:\Users\Asus\anaconda3\condabin\conda.bat
C:\Users\Asus\anaconda3\Scripts\conda.exe
其中第二行即为conda
所在位置
不过一般pycharm会自动索引conda
位置,当存在Conda Environment时说明已经绑定成功了,只要conda
已添加至环境变量一般都能索引出来
- Existing environment:
interpreter
一般情况下,这里的interpreter指的是你python.exe
所在的位置
如果你直接从文件中打开,pycharm会自动索引编译器所在的位置。
Conda executable
相比于Virtualenv所不同,是指索引调用conda包的位置
注意(3)(4)下创建的虚拟环境储存在该包默认路径下
(3)Pipenv Environment
和其他包一样,出现索引路径位置
正常情况下安装上Pipenv
会自动索引位置
否则需要查看Pipenv
所在位置并输入绝对路径
Pipenv
的界面就简单很多了
出现选项:从pipfile
安装软件包
默认勾选,方便管理依赖包
(4)Poetry Environment
和Pipenv包一样,出现索引路径位置
正常情况下安装上Poetry
会自动索引位置
否则需要查看Poetry
所在位置并输入绝对路径
2. python自带vene创建虚拟环境
vene函数库命令
该部分需要你先在全局环境中安装好python并添加至环境变量中
然后调用vene
的函数库,这里vene
函数库命令注释写的很全,对于过程的配置已经非常完善了,直接参考函数库文献即可。
3. 使用Anaconda Navigator配置虚拟环境
在安装完Anaconda
后,附带生成Anaconda Navigator
使用Anaconda Navigator
可以非常方便的创建虚拟环境并添加各种各样的包
超级方便简洁可以说是
打开Anaconda Navigator
界面
这界面可以说是超级清新洒脱✎~~~✐
选择Environment
可以查看到当前生成的所有虚拟环境以及基环境
base(root)
代表基环境,而底下五个可选选项分别代表着
Create
创建新环境
Clone
克隆已有环境
Import
导入新环境(环境迁移)
这里注意导入的不是库,导入的是环境
Backup
上传环境
Remove
删除环境
-
create:
这里选择python,当然如果你是数学研究工作者对底下的R语言应该并不陌生,不管你陌不陌生,反正我很陌生( ´_ゝ`)✎
R语言官方网站 -
clone:
输入新环境的名称 -
Import:
上键从本地文件导入
下键从账户文件导入
填写新环境名称时根据需要选择是否覆盖原有环境的名称 -
Backup:
上键(上传)保存到本地位置
下键上传到账户文件
填写新环境名称时根据需要选择是否覆盖原有环境的名称 -
Remove:
选择需要删除的虚拟环境进行删除
删除请深思,一旦删除无法还原
4. 使用cmd.exe配置虚拟环境
命令终端控制创建虚拟环境有两种主流方式
此处针对windows:
1. 一种是全局状态下直接调用cmd命令框:运行->cmd
2. 另一种是在固定路径下调用cmd命令框:
在你需要创建虚拟环境的文件夹下输入cmd打开命令框
如下图:
1.
这界面不会还有人陌生吧|・ω・`)
2.
在路径处
覆盖输入cmd
弹出cmd命令窗口
你可能要问,两者有什么区别呢?
第一个创建虚拟环境指向默认路径
第二个创建虚拟环境指向当前路径
在以下各库底下附有两个网址
⇑表示其官网或官方文档
⇓表示其python的函数库索引
想全面了解的可以直接索引上述网址
你不会只是想创建个虚拟环境就走了吧ʅ(‾◡◝)
(1)conda
⇑Conda英文官方文档
⇓Conda函数库索引
conda
是目前最主流的虚拟环境库安装包(可能有之一٩(͡๏̯͡๏)۶)
所以以下部分会讲的稍微比较详细,其他包的执行过程比较相近
如果你想了解全部命令函数
参考如下命令输出
①conda
命令文档:
conda
直接输入该包的名称
其中包括五个部分
usage
:用法Options
:选项positional arguments
:位置参数optional arguments
:可选参数conda commands available from other packages
:
其他包中可用的 conda 命令
Microsoft Windows [版本 10.0.22000.556]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Asus>conda
usage: conda-script.py [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
Options:
positional arguments:
command
clean Remove unused packages and caches.
compare Compare packages between conda environments.
config Modify configuration values in .condarc. This is modeled after the git config command. Writes to the
user .condarc file (C:\Users\Asus\.condarc) by default.
create Create a new conda environment from a list of specified packages.
help Displays a list of available conda commands and their help strings.
info Display information about current conda install.
init Initialize conda for shell interaction. [Experimental]
install Installs a list of packages into a specified conda environment.
list List linked packages in a conda environment.
package Low-level conda package utility. (EXPERIMENTAL)
remove Remove a list of packages from a specified conda environment.
uninstall Alias for conda remove.
run Run an executable in a conda environment. [Experimental]
search Search for packages and display associated information. The input is a MatchSpec, a query language
for conda packages. See examples below.
update Updates conda packages to the latest compatible version.
upgrade Alias for conda update.
optional arguments:
-h, --help Show this help message and exit.
-V, --version Show the conda version number and exit.
conda commands available from other packages:
build
content-trust
convert
debug
develop
env
index
inspect
metapackage
pack
render
repo
server
skeleton
token
verify
C:\Users\Asus>
命令部分
谷歌翻译如下:
clean 删除未使用的包和缓存。
compare conda 环境之间的包比较。
config 修改 .condarc 中的配置值。这是在 git config 命令之后建模的。默认写入user.condarc 文件 (C:\Users\Asus\.condarc)。
create 从指定包的列表中创建一个新的 conda 环境。
help 显示可用 conda 命令及其帮助字符串的列表。
info 显示有关当前 conda 安装的信息。
init 为 shell 交互初始化 conda。 [实验]
install 将软件包列表安装到指定的 conda 环境中。
list 列出 conda 环境中的链接包。
package 低级 conda 包实用程序。 (实验性)
remove 从指定的 conda 环境中删除软件包列表。
uninstall conda remove 的别名。
run 在 conda 环境中运行可执行文件。 [实验]
search 搜索包并显示相关信息。输入是 MatchSpec,一种查询语言
对于 conda 包。请参阅下面的示例。
update 将 conda 包更新到最新的兼容版本。
upgrade conda 更新的别名。
在使用前先确定好conda
是否安装成功
两种命令都可以用来查看conda
版本
②查看conda
版本:
conda --version
conda -V
确定conda安装完成且可用后
③创建虚拟环境:
conda create -n <vene_name> python==<version>
<vene_name>
指的是你自定义虚拟环境的名称
<version>
指的是虚拟环境安装python包的版本
例如:
conda create -n xintu python==3.8.5
表示创建虚拟环境的名称为xintu
安装的python环境包为3.8.5的版本
注意:你此时创建的虚拟环境为默认路径,装载在conda所在的一个子目录下,不方便你查找该虚拟环境、不方便编辑且可能偷偷占用大量内存
你安装虚拟环境的过程时输出命令包含了你当前安装的虚拟环境的位置
## Package Plan ##
environment location: C:\Users\Asus\anaconda3\envs\xintu
added / updated specs:
- python==3.8.5
如果你不小心关掉了命令行
对于你默认虚拟环境的位置
可以使用信息查找命令
④信息查找:
conda info
输出信息中含有
envs directories : C:\Users\Asus\anaconda3\envs
C:\Users\Asus\.conda\envs
C:\Users\Asus\AppData\Local\conda\conda\envs
当然,这一命令里还包含了很多其他查看conda的信息
这是我存盘下对应的虚拟环境所在路径
如果需要修改默认路径,只需要修改envs_dirs配置的路径
由刚刚输出的位置可以看出,在默认情况下
虚拟环境的输出路径是三个中指向第一个位置的路径
⑤修改默认路径:
(包含添加和删除)
添加路径
conda config --add envs_dirs <绝对路径>
删除路径
conda config --remove envs_dirs <绝对路径>
-此处引用博主s534435877-Anaconda 修改默认虚拟环境安装位置
https://blog.csdn.net/s534435877/article/details/107655020
也有非命令方法修改默认路径的需要去修改虚拟环境的配置文件
此处不再赘述
设置完路径后再重新创建虚拟环境即可
创建完环境后环境并不能被直接打开,这时你的虚拟环境还没激活
需要激活你的虚拟环境后才能添加进pycharm或vscode等IDE中
⑥激活虚拟环境:
conda activate <vene_name>
激活完虚拟环境就可以愉快的通过pycharm打开该环境进行编辑了
不会用pycharm打开?
( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
那你怎么会接触到的虚拟环境?
抽!!( ̄ε(# ̄)☆╰╮( ̄▽ ̄///)
右键虚拟环境所在的文件夹
出现选项通过pycharm打开
open folder as pycharm…
可以观察到右下角已经出现了虚拟环境的配置
如果你使用的是第二种方式(固定路径状态下)的cmd命令终端,就不需要考虑生成的环境路径问题,该路径已经固定到该文件下,环境路径同样生成在文件路径下
(2)Virtualenv
⇑Virtualenv英文官方文档
⇓Virtualenv函数库索引
可以使用pycharm创建虚拟环境
说明已经导入了Virtualenv
库,但是当在cmd中输入Virtualenv
时
却显示未知命令,可能没有将该库添加到环境变量中
(我的猜测,并没有实际测试过)
不然就重新安装Virtualenv
库到指定路径后引用
①安装可以使用pip
或IDE安装:
pip install virtualenv
②查看virtualenv
信息
Virtualenv
这里显示了Virtualenv
的全部用法
usage: virtualenv [--version] [--with-traceback] [-v | -q] [--read-only-app-data] [--app-data APP_DATA] [--reset-app-data] [--upgrade-embed-wheels] [--discovery {builtin}] [-p py] [--try-first-with py_exe]
[--creator {builtin,cpython3-win,venv}] [--seeder {app-data,pip}] [--no-seed] [--activators comma_sep_list] [--clear] [--no-vcs-ignore] [--system-site-packages] [--copies] [--no-download | --download]
[--extra-search-dir d [d ...]] [--pip version] [--setuptools version] [--wheel version] [--no-pip] [--no-setuptools] [--no-wheel] [--no-periodic-update] [--symlink-app-data] [--prompt prompt] [-h]
使用已有python环境包
③创建虚拟环境
virtualenv -p <本地python.exe的绝对路径> <vene_name>
依据activate.bat
所在路径, 输入执行激活
④激活虚拟环境
<activate绝对路径>\activate.bat
或者直接找到该路径下activate.bat
激活文件双击打开执行即可
接着用pycharm等IDE打开即可编辑
这里有其他博主对该库的专业分析:深入了解↓
https://www.cnblogs.com/lhm166/articles/12863468.html
以下由于笔者对(3)(4)所使用的管理包了解不多
引用其他博主对该库的解析以完善此两种方法下的安装
(3)Pipenv
这里有其他博主对该库的专业分析:深入了解↓
(4)Poetry
这里有其他博主对该库的专业分析:深入了解↓
- https://cxymm.net/article/Python_xiaowu/122118496
- https://blog.csdn.net/mziing/article/details/123842731
5. 使用VS code配置虚拟环境
vscode笔者除了用用里面的插件和偶尔学习一下c语言程序设计,好像…emmm…还不怎么常用
在扩展上并没有找到与直接配置虚拟环境有关的插件
也没有直接应用几个库函数的接口
也就意味着,需要使用vscode调用命令终端控制包管理
确定在vscode中安装好python的插件后,剩下的部分和直接使用cmd.exe
方式完全一样,除了…自定义终端界面
有谁不喜欢用自己的<attachment>
当背景呢ᕕ( ᐛ )ᕗ
三. 配置环境过程常见错误
(1)CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.
在使用命令行控制conda
激活虚拟环境时出现该错误
conda activate <vene_name>
说明你的conda
没有进行初始化配置
需要对你的conda
进行初始化配置
因为你使用的是cmd.exe
终端
①初始化命令:
conda init cmd.exe
然后再次激活虚拟环境
②激活命令:
conda activate <vene_name>
这里的<vene_name>
指的是你虚拟环境的名称
这时即可激活成功
激活成功后就可以将该环境添加到pycharm中进行编译了
(2)当使用pycharm创建虚拟环境过程中,出现Environment location directory is not empty
如图:
这种情况其实很简单,就是你的文件夹非空
虚拟环境不能创建在非空文件夹下
不存在你创建了虚拟环境你的文件夹还是空的,少年
所以,要么清空文件夹重新创建,要么再生成一个新的文件夹再创建虚拟环境
(3)虚拟环境所在的文件夹路径位置更改后虚拟环境失效
这个问题其实很多和我一样刚入手python的朋友经常遇到但却束手无策
其实他的原理很简单,不过就是编译器的位置在索引的时候失效罢了,原位置失效了,可以重新索引,即有Existing environment
用于重新索引编译器
不删除该虚拟环境,需要继续在该环境中工作,但是编译器位置发生改变,那可以试试重新配置该虚拟环境的编译器,虚拟环境出现问题主要与编译器位置的索引有关,编译器位置更改,虚拟环境索引不到编译器所在位置,虚拟环境失效,重新索引虚拟环境所需的编译器并根据情况看是否需要重新激活虚拟环境(一般情况下只要重新索引完位置就不再需要激活了)
(4)当使用pycharm创建虚拟环境过程中,出现Pipenv executable is not found
这就是个小问题了,只是缺少安装Pipenv
包
在命令终端中安装Pipenv
包即可
pip install pipenv
安装后可以查看相关信息以及查看所安装的位置
然后重启pycharm后就可以看到pycharm中出现了
pipenv
包的索引位置,如果没有出现,手动输入即可
poetry executable is not found同理
希望能够帮到迷途之中的你,知识有限,如有学术错误请及时指正,感谢大家的阅读
(^^)/▽ ▽\(^^)
更多推荐
所有评论(0)