Ubuntu系统安装配置Python机器学习库教程
Ubuntu Python机器学习库使用指南
想在Ubuntu系统上快速搭建一个趁手的机器学习开发环境吗?这份指南将带你从零开始,完成从基础环境配置到GPU加速,再到核心库安装与实战的完整流程。整个过程力求清晰、高效,帮你避开那些常见的“坑”。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
一 环境准备与基础安装
万事开头先打基础。一个干净、隔离的环境是后续所有工作的前提。
- 更新系统并安装基础工具:
- 首先,确保你的系统包是最新的:
sudo apt update && sudo apt upgrade -y - 接着,安装编译和开发必备工具:
sudo apt install -y build-essential cmake git python3-dev python3-venv
- 首先,确保你的系统包是最新的:
- 建议优先使用虚拟环境(venv 或 conda)隔离依赖:
- 创建并激活一个名为“ml”的虚拟环境:
python3 -m venv ~/venvs/ml,然后source ~/venvs/ml/bin/activate。
- 创建并激活一个名为“ml”的虚拟环境:
- 安装常用数据科学栈(CPU版):
- 在激活的虚拟环境中,一次性安装核心库:
pip install -U pip numpy pandas scipy scikit-learn matplotlib seaborn jupyter。
- 在激活的虚拟环境中,一次性安装核心库:
- 验证安装:
- 跑个简单命令检查一下:
python -c “import numpy, pandas, sklearn, matplotlib; print(numpy.version, pandas.version, sklearn.version)”。
- 跑个简单命令检查一下:
- 可选:使用 Anaconda 管理环境与包(适合多项目与GPU场景)
- 如果你管理多个项目或需要复杂的包依赖,Anaconda是个好选择。下载安装脚本并安装,然后创建环境:
conda create -n ml python=3.10 -y && conda activate ml。
- 如果你管理多个项目或需要复杂的包依赖,Anaconda是个好选择。下载安装脚本并安装,然后创建环境:
二 GPU加速配置
当数据量和模型复杂度上来后,GPU就是你的“核动力”。这部分配置稍显繁琐,但一步到位后效率倍增。
- 安装 NVIDIA 驱动(示例版本,可按需调整):
- 执行:
sudo apt-get install -y nvidia-driver-535。 - 安装后务必重启系统,然后运行
nvidia-smi来验证驱动是否正确安装并查看GPU信息。
- 执行:
- CUDA 与 cuDNN(示例为 CUDA 11.8,通常与驱动版本配套):
- 从 NVIDIA 官网下载对应版本的 CUDA Toolkit runfile 安装包。安装时,切记选择“不安装驱动”,因为我们已经装好了。
- 安装完成后,需要配置环境变量(以下路径以实际安装为准):
echo ‘export PATH=/usr/local/cuda-11.8/bin:$PATH’ >> ~/.bashrcecho ‘export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH’ >> ~/.bashrc- 最后执行
source ~/.bashrc让配置生效。
- 深度学习框架 GPU 版本安装(以 PyTorch 为例,CUDA 11.8):
- 现在可以安装支持GPU的PyTorch了:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118。
- 现在可以安装支持GPU的PyTorch了:
- 验证 GPU 可用(PyTorch):
- 运行一段Python代码来确认一切就绪:
python - <<‘PY’ import torch print(“CUDA a vailable:”, torch.cuda.is_a vailable()) print(“CUDA device count:”, torch.cuda.device_count()) if torch.cuda.is_a vailable(): print(“Current device:”, torch.cuda.get_device_name(0)) PY
- 运行一段Python代码来确认一切就绪:
三 常用库安装与用途
工欲善其事,必先利其器。了解每个核心库的用途,能让你在构建项目时更有条理。
| 库 | 主要用途 | 安装命令(CPU) | 备注 |
|---|---|---|---|
| NumPy | 数组与线性代数 | pip install numpy | 科学计算基础,几乎所有库都依赖它 |
| pandas | 数据处理与分析 | pip install pandas | DataFrame 高效操作,数据清洗利器 |
| SciPy | 科学算法与稀疏矩阵 | pip install scipy | 依赖 BLAS/LAPACK,提供高级数学函数 |
| scikit-learn | 传统机器学习 | pip install scikit-learn | 分类、回归、聚类、评估,算法工具箱 |
| Matplotlib/Seaborn | 可视化 | pip install matplotlib seaborn | 基础绘图与高级统计图表 |
| TensorFlow/Keras | 深度学习 | pip install tensorflow | 工业级框架,tf.keras 提供了简洁的高级API |
| PyTorch | 深度学习 | pip install torch torchvision torchaudio | 研究友好,动态图,GPU版本需匹配CUDA |
| Jupyter | 交互式笔记本 | pip install notebook | 适合探索式分析和教学演示 |
- 安装顺序建议: 为了减少依赖冲突,建议按这个顺序来:先装 NumPy/SciPy 这些底层科学计算库,再装 pandas/scikit-learn 这类上层应用库,最后安装 TensorFlow/PyTorch 等深度学习框架。
四 快速上手示例
环境搭好了,库也齐了,不来点实战代码总觉得少了点什么。下面两个例子,分别带你感受传统机器学习和深度学习的“Hello World”。
- 示例一 传统机器学习(scikit-learn 线性回归)
-
这段代码展示了从生成数据、训练模型到评估可视化的完整流程:
python - <<‘PY’ import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score import matplotlib.pyplot as plt # 构造数据 X = np.linspace(0, 10, 100).reshape(-1, 1) y = 3.5 * X.ra vel() + np.random.normal(0, 2, X.size) # 训练/测试划分 X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, random_state=42) # 训练 model = LinearRegression() model.fit(X_tr, y_tr) # 评估 y_pred = model.predict(X_te) print(“MSE:”, mean_squared_error(y_te, y_pred)) print(“R2:”, r2_score(y_te, y_pred)) # 可视化 plt.scatter(X_te, y_te, color=‘blue’, label=‘Actual’) plt.plot(X_te, y_pred, color=‘red’, label=‘Predicted’) plt.legend(); plt.show() PY
-
- 示例二 深度学习(TensorFlow/Keras MNIST 手写体)
-
用经典的MNIST数据集,快速搭建一个神经网络:
python - <<‘PY’ import tensorflow as tf from tensorflow.keras import Sequential from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras.utils import to_categorical # 加载与预处理 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() x_train, x_test = x_train/255.0, x_test/255.0 y_train = to_categorical(y_train, 10) # 构建模型 model = Sequential([ Flatten(input_shape=(28, 28)), Dense(128, activation=‘relu’), Dense(10, activation=‘softmax’) ]) model.compile(optimizer=‘adam’, loss=‘categorical_crossentropy’, metrics=[‘accuracy’]) # 训练与评估 model.fit(x_train, y_train, epochs=3, batch_size=32, validation_split=0.1, verbose=2) loss, acc = model.evaluate(x_test, to_categorical(y_test, 10), verbose=0) print(f“Test accuracy: {acc:.4f}”) PY
-
五 常见问题与排错
开发路上难免遇到问题,这里汇总了几个高频“拦路虎”及其解决方案。
- 编译/头文件缺失(如“Python.h: No such file or directory”)
- 解决方法:
sudo apt-get install -y python3-dev。
- 解决方法:
- 构建 SciPy/依赖 BLAS/LAPACK 失败
- 解决方法:
sudo apt-get install -y gfortran libopenblas-dev liblapack-dev。
- 解决方法:
- pip 权限错误
- 牢记:尽量避免使用 sudo pip。优先在虚拟环境中安装。如果必须在全局安装,使用
pip install --user package。
- 牢记:尽量避免使用 sudo pip。优先在虚拟环境中安装。如果必须在全局安装,使用
- 图形后端错误(matplotlib)
- 在无图形界面的服务器上,可以强制使用非交互式后端:
echo “backend: Agg” > ~/.config/matplotlib/matplotlibrc。
- 在无图形界面的服务器上,可以强制使用非交互式后端:
- Jupyter 远程访问
- 首先生成配置文件:
jupyter notebook --generate-config。 - 编辑配置文件,设置以下项:
c.NotebookApp.ip=‘0.0.0.0’c.NotebookApp.port=8888c.NotebookApp.open_browser=False
- 别忘了:在云服务器或本地防火墙中放行8888端口。
- 首先生成配置文件:
相关攻略
在Ubuntu16 04系统中安装Java8和Java9。需注意Java9可能不完全向后兼容。安装均通过添加Webupd8PPA仓库、执行安装命令并同意许可协议完成。安装后需分别设置默认版本或环境变量,最后可通过`java-version`命令验证安装结果。
LNMP环境中优化数据库查询需系统实施。关键步骤包括:根据业务选择存储引擎,优化表结构与字段类型,合理创建索引,编写高效SQL语句避免全表扫描。引入缓存层减轻数据库压力,使用连接池管理连接,必要时采用查询提示或分区表。定期维护数据库并监控慢查询,以实现持续性能提升。
HBase数据恢复需按步骤进行:先确认集群状态并定位故障,操作前备份数据。恢复时可选用内置工具、快照、WAL回放或手动替换文件等方法。完成后验证数据完整性与集群健康,持续监控优化。注意版本兼容性,在业务低峰期操作,并建立定期备份策略。
HBase数据备份主要有五种方法。使用自带工具可进行全量或增量备份。快照功能通过创建元数据引用实现快速备份与恢复。直接备份HDFS底层文件适合长期归档或迁移。第三方工具如DistCp和XtraBackup提供压缩、加密等增强功能。集群间复制机制支持实时同步,满足异地容灾需求。
优化Apache2应用的数据库连接可提升性能,主要方法包括:使用持久连接或连接池复用连接以降低开销;限制并发连接数防止数据库过载;利用缓存减少查询;优化SQL语句与索引;调整数据库配置以适应负载;持续监控并动态调优,保障系统高效运行。
热门专题
热门推荐
2026年,Bitget在交易所排行榜上展现出强劲的竞争力。其表现主要体现在用户资产安全体系的持续加固、多元化产品矩阵的成熟与创新,以及在合规与全球化布局上的显著进展。平台通过优化现货与衍生品交易体验,并深化Web3生态建设,巩固了其在行业中的领先地位,获得了市场与用户的广泛认可。
HttpClient的7个常见陷阱与规避指南 在 NET 生态里进行项目开发,HttpClient 几乎是调用外部 API 绕不开的一个工具。它的上手门槛很低,用起来很顺手,但恰恰是这份“简单”,让不少开发者放松了警惕。如果不清楚它内部的运作机制,一不小心就可能掉进坑里,轻则请求失败,重则引发服务
如何解决 NET Core项目与Linux服务器之间的时间同步问题 导语 搞分布式系统的开发者,多少都踩过时间不同步的“坑”。这事说大不大,说小不小——日志对不上、订单乱取消、交易出岔子,追根溯源,往往是几台机器的时间“各走各的”。尤其是在 NET Core应用遇上Linux服务器的场景,时区、格式
1 首先安装必要的NuGet包 第一步,咱们得把项目里需要的“砖瓦”——也就是那几个关键的NuGet包——给准备好。具体是下面这几个: NLog:日志记录的核心库。 NLog Config (可选):如果你想让配置文件自动生成,可以加上这个。 当然,别忘了根据你用的数据库类型,安装对应的提供程序。
在 NET Core 中玩转 RabbitMQ:从零搭建可靠的消息队列 消息队列是现代应用解耦和异步通信的基石,而 RabbitMQ 无疑是这个领域的明星选手。它基于 AMQP 协议,为不同应用程序间的可靠消息传递提供了强大支持。今天,我们就来深入聊聊,如何在 NET Core 环境中,亲手搭建





