「CB」02 创建并使用 Conda 虚拟环境
Hello again! ¶
嗨!这里是阿乎的博客!(> ▽ <) /~
今天我们一口气完成这几件事:
- 创建一个 Conda 虚拟环境
- 启用 / 查看 / 退出 环境
- 安装简单的 Python 库(你不一定会用到,但练习很重要!)
- 删除环境(练习完毕后清理环境)
1. What is a Virtual Environment? ¶
我们继续用 Minecraft 做比喻:
“虚拟环境”就像是你在 MC 启动器中创建的一个游戏实例(Instance),每个实例有独立的 Minecraft 版本和 mod 配置,互不干扰。
在 Conda 中,虚拟环境就是让你为每个项目创建一个独立的 Python 配置,避免各种“版本地狱”和“删库重装”的悲剧发生。
2. Create a Virtual Environment ¶
打开命令行,输入:
conda create -n my_first_env python=3.12
-n my_first_env
:创建一个名为my_first_env
的虚拟环境python=3.12
:指定使用 Python 3.12 版本
Note:
- 如果不写
python=...
,则默认使用 Conda 当前最新版本- 没写
python
的话,甚至不会自动装 Python!(这和空 Minecraft 一样,啥都跑不了)
Conda 会提示:
Proceed ([y]/n)?
输入 y
(或直接回车)即可。
3. Activate the Environment ¶
conda activate my_first_env
你会看到命令行提示符变成:(如果你使用的是 Windows)
(my_first_env) C:\Users\YourName>
这代表你已经“进入”这个虚拟环境。
⚠️ 重点提示:在激活的环境下运行
python
或pip
,都会默认作用于该环境!
退出环境:
conda deactivate
查看所有环境:
conda env list
或
conda info --envs # 我个人更习惯这个
4. Install Some Libraries ¶
可以使用 conda
或 pip
安装常见的第三方库:
conda install numpy pandas matplotlib
或者:
pip install numpy pandas matplotlib # 个人更习惯这个
这些是数据分析最基础的三大件:
numpy
,pandas
:数据处理工具matplotlib
:绘图工具
你可以随便装点什么来练练手,比如:
conda install rich
这是一个超漂亮的终端输出美化库!
5. Delete (Remove) your Environment😈 ¶
不想要某个环境时,可以直接删除它:
conda remove -n my_first_env --all
Note:这个命令不会有“回收站”,而是直接删除环境及其所有内容!请确保你真的不需要它了。
6. Practice: Can you do it? ¶
现在你已经会:
- 创建 / 激活 / 查看 / 退出 环境
- 安装简单的库
- 删除环境
试试看:
-
创建一个叫做
practice
的新环境,使用 Python 3.10 -
激活它并安装
numpy
和rich
-
在安装这些库后,运行一个简单的 Python 脚本,打印出“Hello, Conda!”并使用
rich
美化输出from rich import print print("(Regular) Hello, Conda!") print("(Bold Green) [bold green]Hello, Conda![/bold green]")
-
在确保激活这个脚本的情况下,运行它:
python your_script.py
如果你看到如下图的输出,那么恭喜你成功了!(我的终端自定义了颜色方案,因此色彩可能与你的不同)
-
最后,删除它吧,毕竟练习后就用不到这个单独的环境啦。
-
检查自己的环境列表确定它已被删除。
Tips: 如果你在运行脚本时发现以下报错,请检查自己是否激活了环境:
7. More to do? ¶
按个人使用习惯,我推荐接下来继续学习在 VSCode 中 使用 JupyterNotebook。
详见:「EP」02 在Vscode中使用Jupyter Notebook(重制)
(也建议查看整个Easy Python
系列,了解更多 Python 基础知识)
结语 ¶
你,已经入门啦!🎉
未来等待你的是各种环境变量错误和没见过的bug,但是,只要不当“CV工程师”,相信你能通过善用搜索工具解决它们!
Have fun, see you next time!