ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

conda环境管理实战:从创建环境到Jupyter运行NumPy

conda环境管理实战:从创建环境到Jupyter运行NumPy 这可能是很多人在学习数据分析时遇到的第一个“隐形坎”课程视频里老师熟练地敲着命令几秒钟装好了 NumPy顺手打开了 Jupyter Notebook然后开始写代码。你跟着做却发现要么conda半天没反应要么 Jupyter 打开之后一片空白要么辛辛苦苦装好了库第二天打开电脑又一个都找不到了。我不是第一次看到有人在这里卡住。也不是第一次看到有人为了省事把几十个库一股脑装进同一个环境里最后发现 A 项目需要 pandas 1.5B 项目因为别的原因只能用到 pandas 1.3两边互相拉扯整个环境变得像一个堆满旧家具的仓库。所以这篇文章想花点篇幅把“环境创建、安装 NumPy、启动 Jupyter、创建项目”这条链路完整走一遍。重点不是让你复制命令而是讲清楚每一步背后的原因为什么建议用 conda 而不是直接 pip install 到系统 Python为什么 Notebook 启动后需要再关联环境以及“创建项目”到底意味着什么。1. 为什么说数据分析的第一步不是写代码而是管理环境1.1 一个真实到几乎每个人都遇到过的环境事故先讲一个典型的场景。你电脑上可能已经装过 Python可能是自己下载安装的也可能是 Visual Studio 或其他软件顺带装进去的。某天你准备开始学数据分析项目标题告诉你要安装 numpy、打开 jupyter。你打开命令行输入pip install numpy结果有几种可能报错pip 不是内部或外部命令显示已经安装但用import numpy时提示找不到模块安装成功了但重启电脑或换一个终端窗口又提示 module not found这其实是同一个根源问题你在哪个 Python 环境里你安装的包就进到哪个环境里。如果终端里运行的 Python 和你 Jupyter 用的 Python 不是同一个那么装一万次也还是“找不到”。1.2 环境到底是什么从 Python 解释器到依赖树这里可以做一个很朴素的类比。把 Python 环境理解成一个房间解释器是这个房间的“总负责人”NumPy、pandas 这些库是房间里的工具。你执行pip install numpy相当于把一个新工具放进了当前房间。问题是你电脑上不止一个房间。可能有 Python 自带的房间有 Anaconda 创建的房间甚至还有虚拟环境软件创建的多个房间。如果你在 A 房间放了一把扳手却跑到 B 房间去找工具结果自然是找不到。这还不是全部。NumPy 本身还有版本要求它和其他库之间可能存在复杂的依赖关系。比如某个库依赖 numpy 1.x另一个库需要 numpy 2.x如果都放在同一个房间里后期就可能产生冲突。你装的时候一切正常跑起来的时候才发现问题。所以环境管理的核心不是“装一个软件”而是做两件事明确当前这个项目的 Python 解释器是哪个。让不同项目之间互相隔离互不污染。这也是为什么课程标题里先写“环境创建”再写“安装 numpy”。没有环境意识后面每一步都可能踩坑。2. 用 conda 先造一个干净的数据分析工作区2.1 选择 Anaconda 还是 Miniconda很多教程会直接说“先安装 Anaconda”。Anaconda 是一个集成发行版里面预装了 Python、NumPy、pandas、Jupyter 等两百多个常用包。优点是开箱即用缺点是体积较大安装过程也占时间。如果只是想学习 NumPy 和 Jupyter另一个更克制的方式是安装 Miniconda。Miniconda 只包含 conda 和一个最小化的 Python后续按需安装自己需要的库。我的建议是如果你希望尽量减少折腾安装 Anaconda 也可以。安装完之后很多库已经就位初学者可以直接开始写代码。如果你想保留对环境的掌控感或者电脑空间紧张建议 Miniconda。它更接近“从零搭建一个干净实验室”的原始路径。两者在 conda 的基本命令上没有本质区别。下面所有步骤在两种环境下都通用。2.2 创建环境不是“新建文件夹”那么简单打开终端或 Anaconda Prompt先确认 conda 可用conda --version然后创建一个独立环境。环境名可以按照项目来取比如>conda create -n>conda activate>which python which pip在 Windows 上对应命令是where python where pip正常情况下路径里应该包含>conda env list这个命令会列出所有环境。当前环境前面会有一个星号标记。注意如果conda activate在当前终端不可用先执行conda init初始化 shell然后重新打开终端再试。3. 安装 NumPy这一步的坑不在安装本身环境创建好后安装 NumPy 本身是一个非常简单的事情。但真正的坑通常藏在“为什么装完还是不行”“为什么版本对不上”“为什么提示已经存在却不生效”这些看起来不像是安装问题的问题里。3.1 先确认 Python 版本再选安装方式执行python --version确认当前环境中的 Python 是 3.10 还是 3.11这会决定 NumPy 安装的版本形态。NumPy 对不同 Python 版本有不同轮子包。然后执行安装conda install numpy -y如果项目教程或后续课程要求用 pip也可以pip install numpy这里有一个经验判断既然环境是用 conda 创建的那么优先使用conda install安装包含二进制依赖的科学计算库。原因是 conda 不仅管理 Python 包也管理系统级依赖库兼容性处理更严格。pip则主要处理 Python 包本身部分包的底层依赖可能需要自己额外解决。初期安装 NumPy 用 conda 就够。如果后面遇到 conda 源里找不到的包再考虑 pip。3.2 pip 和 conda 到底该用谁一个容易产生混乱的点是conda 环境里可以调用 pip并且 pip 也会把包装进当前 conda 环境。但如果系统还装了别的 Python命令行里的 pip 可能并不属于当前环境。建议是统一原则创建环境用 conda。优先用 conda 安装包。只有 conda 没有的包才用 pip 安装。pip 安装前先确认当前环境里的 pip 路径正确。少混用包管理器环境会干净很多。3.3 验证 NumPy 装没装好比 print(np.version) 更重要的两件事安装完成后不要急着写复杂代码。先做两个验证第一个验证版本python -c import numpy; print(numpy.__version__)如果能正常打印版本说明 NumPy 已经可以导入。但这还不能证明它一定属于当前环境。第二个验证路径这一步很多人忽略python -c import numpy; print(numpy.__file__)打印出的路径应该指向当前环境目录。如果路径显示的仍然是一个全局安装包说明你用的 Python 不是当前环境的 Python。这个时候不是 NumPy 没装好而是解释器选错了。import numpy as np # 创建一个简单数组 arr np.array([1, 2, 3, 4]) # 查看形状和数据类型 print(arr.shape, arr.dtype) # 简单运算 print(arr * 2)如果这段代码能输出预期结果说明 NumPy 的基本链路已经通了。4. Jupyter Notebook 不是编辑器是实验记录本4.1 Notebook、JupyterLab 和普通 IDE 的定位差异很多人第一次接触 Jupyter Notebook 时会问一个问题它和 PyCharm、VSCode 有什么区别它们都能写 Python 代码但定位很不同。PyCharm 或 VSCode 更适合构建完整项目。你可以写包、写类、定义函数、调试脚本、运行测试最终形成一个相对完整的软件工程结构。Jupyter Notebook 更像一个实验记录本。它允许你把代码、输出结果、Markdown 说明、可视化图表混排在一份文档里。每一段代码都可以单独运行单独看输出。这种交互方式特别适合探索式数据分析你不用把整个程序跑完可以先看看数据长什么样再决定下一步怎么清洗、怎么建模。JupyterLab 是 Notebook 的升级版界面。它保留了单元格交互也顺便提供了文件浏览器、终端、文本编辑器等能力整体更像一个轻量级工作台。对数据分析新手来说一开始使用 Notebook 足够。它降低了探索门槛让你把注意力放在数据和思路上。4.2 启动 Notebook 之前必须检查的三件事很多人装好 Jupyter 后直接运行jupyter notebook然后发现界面里导入 NumPy 报错或者右下角显示内核连接失败。这类问题大多来自“环境没对应上”。启动前建议依次检查三件事第一确认 Jupyter 安装在哪里。which jupyter第二确认当前环境中是否安装了 ipykernel。如果没有需要安装conda install ipykernel -y第三为当前环境注册一个 IPython 内核。这一步很关键python -m ipykernel install --user --namedata-analysis --display-name data-analysis做完这三步再启动 Jupyterjupyter notebook如果习惯用 JupyterLabjupyter lab在 Notebook 右上角的 Kernel 菜单里应该能看到一个名为>data-analysis/ ├── data/ # 原始数据 │ └── raw/ ├── notebooks/ # Jupyter Notebook 文件 ├── scripts/ # 可复用 Python 脚本 ├── outputs/ # 处理结果、图表 ├── requirements.txt # 项目依赖 └── README.md # 项目说明不需要一上来就弄得很宏大但建议至少区分数据放哪里。分析文件放哪里。输出结果放哪里。这样做的核心价值在于你不会在三个月后面对一个全部散落在桌面上的混乱目录不知道哪个文件是当时的最终版本。在项目目录下打开终端然后创建环境、安装依赖再启动 Jupyter。这里的习惯是先进入项目目录再启动 Jupyter。cd>pip freeze requirements.txt第二种用 conda 导出环境定义conda env export environment.yml两者各有侧重。requirements.txt 更通用其他同事或另一台电脑可以用pip install -r requirements.txt来复现。environment.yml 更完整包含 conda 的 channel 信息和部分系统级依赖适合完整重建一个环境。对刚开始接触数据分析的人来说这个动作可能显得多余。但它的价值在于环境也是项目的一部分。你写的代码能不能在别的地方运行不只看代码本身还要看依赖是否一致。5.3 什么时候该重建环境而不是继续打补丁有的人环境用了很久里面装了几百个包有 conda 装的也有 pip 装的新旧版本混杂还有大量不认识的库。要不要清理我的建议是分情况。如果环境里只是加了一些用不到但也不冲突的包可以暂时不清理至少还能用。但如果出现以下信号就值得考虑重建一个环境新装一个包后原来能运行的代码开始报错。conda install或pip install反复出现依赖冲突。运行conda list时看到大量同一个包的不同版本残留。你根本不记得某个环境是做什么用的。重建方法也很简单再创建一个新环境按需装依赖再把 notebook 跑一遍测试。不要试图在已经混乱的环境里做“大扫除”那通常会浪费更多时间。6. 一套适合新手但不过度工程化的落地方案6.1 从零开始的完整操作序列把前面所有步骤整合成一个可直接照做的顺序大概是这样的安装 Miniconda 或 Anaconda。执行conda create -n>
返回列表