【Python】python安装packages
【Python】Python安装Packages:一份可复用的离线部署脚本 在服务器环境,尤其是网络受限或需要批量部署的场景下,手动一个个安装Python包简直是场噩梦。依赖冲突、版本不对、下载超时……这些问题,想必不少运维和开发朋友都深有体会。 今天,我们就来拆解一个非常实用的Shell脚本。它不
【Python】Python安装Packages:一份可复用的离线部署脚本

在服务器环境,尤其是网络受限或需要批量部署的场景下,手动一个个安装Python包简直是场噩梦。依赖冲突、版本不对、下载超时……这些问题,想必不少运维和开发朋友都深有体会。
今天,我们就来拆解一个非常实用的Shell脚本。它不仅能帮你一次性搞定多个核心Python包的离线安装,更重要的是,它提供了一套清晰的思路:如何规划安装目录、如何指定Python解释器、以及如何实现安装后的环境清理。掌握了这套方法,你完全可以举一反三,定制属于自己的依赖部署方案。
脚本核心逻辑解读
先来看脚本的整体框架。它的逻辑非常直接,可以概括为四个步骤:准备专属安装目录、定位Python解释器、循环安装所需包、最后清理临时文件。这种“初始化-执行-收尾”的结构,保证了脚本的整洁和可复用性。
脚本开头定义了两个关键变量:
#!/bin/sh
## 依赖包安装目录
INSTALL_DIR=$(pwd)/install_dir
if [ ! -d $INSTALL_DIR ]; then
mkdir $INSTALL_DIR
fi
cd $INSTALL_DIR
## python版本
PYTHON=/home/admin/.pythonbrew/pythons/Python-2.7.[0-9]/bin/python
这里有几个细节值得注意。一是使用$(pwd)/install_dir来定义绝对路径,这比相对路径更可靠,避免了执行位置不同带来的问题。二是对目录存在性的检查,避免了重复创建。最关键的是PYTHON变量的定义,它精确指向了通过pythonbrew管理的Python 2.7环境。这确保了所有包都将安装到同一个解释器站点目录下,杜绝了环境混乱。
批量安装:以Tornado为例
接下来,脚本进入了核心的安装循环部分。我们以安装Tornado为例,看看它是如何完成的:
## 安装tornado
wget https://pypi.python.org/packages/source/t/tornado/tornado-4.2.tar.gz --no-check-certificate
tar -xzf tornado-4.2.tar.gz
cd tornado-4.2
$PYTHON setup.py build
$PYTHON setup.py install
cd ..
这个过程是不是很眼熟?其实就是把手动操作的命令自动化了:下载源码包、解压、进入目录、编译构建、最后安装。脚本中使用了--no-check-certificate参数来绕过某些环境下的SSL证书验证问题,这是一个很实用的小技巧。每个包的安装都遵循相同的模式,结构清晰,易于维护和扩展。
关键包的选择与替代方案
脚本安装的包列表颇具代表性,覆盖了网络服务、并发、HTTP请求、自动化测试和图像处理等常见需求:
- Tornado: 高性能的Python Web框架和异步网络库。
- Futures: 为Python 2.7提供了Python 3风格的
concurrent.futures模块,用于并发执行。 - Requests: “人类可用”的HTTP库,简化网络请求。
- Selenium: 浏览器自动化工具,常用于Web测试。
- Pillow: 这里脚本注释明确指出“代替安装PIL”。PIL已停止维护,Pillow是其兼容且活跃的替代分支,这是处理图像的正确选择。
- Six: 提供Python 2和3兼容性函数的库,许多现代包都依赖它。
这个组合非常经典,搭建一个具备Web服务、并发处理、外部接口调用和自动化测试能力的Python环境,这些包往往是基础。
环境清理与最佳实践
所有包安装完毕后,脚本执行了最后一步,也是体现其设计周全的一步:
## 删除安装目录
rm $INSTALL_DIR -rf
删除临时安装目录install_dir。这有什么好处呢?首先,它清理了下载的源码压缩包和解压后的文件夹,释放磁盘空间。其次,它避免了这些中间文件残留可能造成的混淆,保持工作区的整洁。这是一种良好的实践,尤其是在生产部署脚本中。
如何定制你的脚本?
看到这里,你应该已经掌握了这个脚本的精髓。它就像一个模板,你可以根据实际需求轻松修改:
- 更换Python路径: 将
PYTHON变量指向你的实际Python解释器路径(例如/usr/bin/python3)。 - 增删安装包: 在循环部分,按照同样的格式(下载-解压-进入目录-安装)添加或删除你需要的包。注意调整版本号和下载URL。
- 调整安装选项: 你可以在
setup.py install阶段添加参数,比如--user安装到用户目录,或者--prefix指定自定义路径。
最后要提醒的是,在运行任何脚本前,尤其是包含rm -rf这样的命令时,务必确认路径变量是正确的,这是一个基本的安全习惯。将这个脚本保存下来,稍作调整,下次部署环境时你就能从容不迫了。
Adobe Acrobat Pro 是面向办公、法务、财务、教育及出版用户的专业PDF处理软件,可在Mac上创建、编辑、转换、合并和保护文档,并提供OCR文字识别、表单、批注、内容比较、敏感信息遮盖及电子签名功能。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。
Adobe Acrobat Pro 是面向专业 PDF 工作的综合解决方案,可在 Windows 中创建、编辑、转换、比较、整理和保护文档,并支持表单、电子签名、扫描件文字识别及敏感信息永久遮盖。订阅还包含网页、移动服务和云端协作能力,
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。













