Linux离线环境部署Python与Anaconda完整指南
本文详细介绍在Linux服务器无网络环境下搭建Python运行环境的两种方法。重点讲解利用Anaconda集成环境进行离线部署的完整流程,包括在有网机器上下载并打包Anaconda及依赖包,迁移至离线服务器解压配置,以及解决特定第三方库(如py2neo)离线安装时的通道查找与安装技巧,确保开发环境一致性。
离线Python环境部署背景与方案概述
在开发过程中,有时会遇到服务器无法连接互联网的情况,但为了保证代码运行环境的一致性,必须复用之前的环境配置。这种做法能有效避免因环境差异导致的兼容性问题,便于后续开发与维护。
离线环境搭建方法对比
针对离线环境下的Python环境搭建,主要有以下几种方法:
1.下载指定的包到指定文件夹。
pip list #查看安装的包
pip freeze > requirements.txt 将已经通过pip安装的包的名称记录到 requirements.txt文件中
创建存放安装包的目录:mkdir /packs
pip install --download /packs pandas(存放一个pandas包)
或
pip install --download /packs -r requirements.txt(存放requirements.txt列出的所有包)
2.安装指定的离线包
pip install --no-index --find-links=/packs/ pandas 或
pip install --no-index --find-links=/packs/ -r requirements.txt (也可能是 --find-link)
经测试,第一种常见方法(如使用pip下载依赖)存在诸多问题。例如,执行`pip install --download /packs -r requirements.txt`时,可能会遇到部分包无法下载的情况。此外,将下载的包迁移到新服务器进行安装时,常因缺失底层依赖关系而导致安装失败。
第二种方法:
基于Anaconda的离线部署详细步骤
推荐使用集成环境Anaconda。由于Anaconda已经封装好了Python解释器及常用库,安装过程相对简单。你只需在联网机器上下载好Anaconda安装包,并将其拷贝至未联网的服务器即可(需确保在`.bashrc`中正确配置环境变量)。
第一步:在联网环境中安装Anaconda。
从Anaconda官网下载对应的Linux安装包,例如本文使用的是`Anaconda3-5.2.0-Linux-x86_64.sh`。
bash Anaconda3-5.2.0-Linux-x86_64.sh
安装过程中,一路按Enter键确认,输入Y同意许可协议,随后系统会提示是否配置环境变量。
echo 'export PATH="/home/wwk/anaconda3/bin:$PATH"' >> ~/.bashrc
source .bashrc
安装路径通常选择默认即可。安装完成后,需验证是否安装成功。
执行命令:`conda -V`
如果终端返回版本号信息,则说明安装成功。
第二步:在Anaconda环境中安装所需的第三方包。
Anaconda内部集成了pip和conda两种包管理工具,均可用于下载各类库。使用`pip install somepackage`或`conda install somepackage`均可。但需注意,使用conda命令下载时,可能会遇到国内镜像源中找不到所需安装包的情况。以`py2neo`包为例,直接搜索可能无法命中。
wwk@wwk-Aspire-V3-572G:~$ conda install py2neo
Fetching package metadata .............
PackageNotFoundError: Packages missing in current channels:
- py2neo
We have searched for the packages in the following channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
- https://repo.continuum.io/pkgs/main/linux-64
- https://repo.continuum.io/pkgs/main/noarch
- https://repo.continuum.io/pkgs/free/linux-64
- https://repo.continuum.io/pkgs/free/noarch
- https://repo.continuum.io/pkgs/r/linux-64
- https://repo.continuum.io/pkgs/r/noarch
- https://repo.continuum.io/pkgs/pro/linux-64
- https://repo.continuum.io/pkgs/pro/noarch
解决特定第三方库离线安装问题
针对上述问题,有两种解决思路:
第一种方法:直接从其他渠道获取安装包。例如从GitHub下载zip或tar.gz压缩包,解压后进入目录,使用`python setup.py install`命令进行安装(此时需通过`which python`确认当前环境是否指向Anaconda,以确保安装到正确路径)。此外,直接使用Anaconda内嵌的pip进行安装也是一种便捷方式。
第二种方法:利用Anaconda官方API搜索正确的通道。执行命令:`anaconda search -t conda py2neo`
wwk@wwk-Aspire-V3-572G:~$ anaconda search -t conda py2neo
Using Anaconda API: https://api.anaconda.org
Packages:
Name | Version | Package Types | Platforms | Builds
------------------------- | ------ | --------------- | --------------- | ----------
auto/py2neo | 1.6.4 | conda | linux-64, linux-32 | py27_0
: http://nigelsmall.com/py2neo
bioconda-legacy/py2neo | 3.1.2 | conda | linux-64, osx-64 | py36_0, py27_0, py35_0, py34_0
cmckeague/py2neo | 3b1 | conda | linux-armv7l | py27_0
: Python client library and toolkit for Neo4j
conda-forge/py2neo | 4.0.0b2 | conda | linux-64, win-32, osx-64, win-64 | py36_0, py35_0, py27_0
: Python client library and toolkit for Neo4j
ivoflipse/py2neo | 1.6.4 | pypi, conda | win-64 | py27_0
: Python client library for the Neo4j REST server
mutirri/py2neo | 2.0.8 | conda | linux-64, win-32, win-64, osx-64 | py27_0, py33_0, py35_0, py34_0
: Python client library and toolkit for Neo4j
Found 6 packages
Run 'anaconda show <USER/PACKAGE>' to get installation details
接着输入:`anaconda show conda-forge/py2neo`,即可查看到包含该包的官方通道信息。
wwk@wwk-Aspire-V3-572G:~$ anaconda show conda-forge/py2neo
Using Anaconda API: https://api.anaconda.org
Name: py2neo
Summary: Python client library and toolkit for Neo4j
Access: public
Package Types: conda
Versions:
+ 4.0.0b2
+ 3.1.2
To install this package with conda run:
conda install --channel https://conda.anaconda.org/conda-forge py2neo
根据最后一行的提示,复制对应的安装命令即可。
wwk@wwk-Aspire-V3-572G:~$ conda install --channel https://conda.anaconda.org/conda-forge py2neo
Fetching package metadata ...............
Solving package specifications: .
Package plan for installation in environment /home/wwk/anaconda3:
The following NEW packages will be INSTALLED:
neo4j-python-driver: 1.1.0rc1-py36_0 conda-forge
py2neo: 4.0.0b2-py36_0 conda-forge
The following packages will be UPDATED:
conda: 4.3.30-py36h5d9f9f4_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free --> 4.5.11-py36_0 conda-forge
conda-env: 2.6.0-0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free --> 2.6.0-1 conda-forge
Proceed ([y]/n)? y
conda-env-2.6. 100% |#####################################################################| Time: 0:00:00 1.34 MB/s
neo4j-python-d 100% |#####################################################################| Time: 0:00:00 72.70 kB/s
py2neo-4.0.0b2 100% |#####################################################################| Time: 0:00:00 176.24 kB/s
conda-4.5.11-p 100% |#####################################################################| Time: 0:00:02 230.86 kB/s
最后,务必打开Python环境,尝试导入该包以验证是否安装成功。
离线服务器环境迁移与验证
上述操作是在联网环境下完成运行环境的完整配置。至此,你已经完成了99%的工作。
第三步:将配置好的Anaconda环境迁移至离线服务器。将安装好的`anaconda3`目录压缩打包为`anaconda3.zip`,拷贝至目标离线服务器。例如,将其解压至`/home/wwk/anaconda3`目录下。
最后:
unizp anaconda3.zip -d /home/wwk/anaconda3
vim .bashrc
# added by Anaconda3 installer
export PATH="/home/wwk/anaconda3/bin:$PATH"
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













