Python环境及依赖离线安装

一、python环境安装

方法一

说明:目的主机(现场环境,离线),本地主机(联网),目的主机与本地主机系统架构相同,以安装python3.9.9为例。

安装步骤(依赖包迁移过程):

  1. 检查目的主机的python版本(假设为python3.9.9)

$ python3 –version (查看默认链接的python3版本)

$ ls /usr/bin/python* (这个命令会列出 /usr/bin 目录下所有以 python 开头的文件,通常包括不同版本的 Python 解释器)

  1. 在本地主机安装与目的主机相同版本的python(保证版本完全相同尽量避免兼容性问题)

$ sudo apt update

$ sudo apt install python3=3.9.x

  1. 在本地主机下载并导出需要的python依赖包

$ python3.9 -m pip download -d packages -r requirements.txt

说明:packages为下载包的目录(下载后生成),requirements.txt为所需的包列表文件(下载前提供)

  1. 在目的主机安装离线依赖包

$ python3.9 -m pip install –no-index –find-links=packages -r requirements.txt

说明:packages与requirements.txt在同级目录下

方法二

直接下载目的主机对应的架构及python版本下的whl文件安装

查看目标主机python库版本支持:pip debug –verbose

下载源:https://pypi.tuna.tsinghua.edu.cn/simple/

下载案例:python3.9 numpy1.20.0 系统架构aarch64

安装whl文件:

python3.9 -m pip install numpy-1.20.0-cp39-cp39-manylinux2014_aarch64.whl

方法三

步骤一 离线安装conda

在离线环境中安装和使用 Conda 的详细流程如下:

一、准备工作

  • 联网机器

  • 确保有一台可以上网的机器。

  • 离线机器

  • 准备好离线机器,确保与联网机器之间可以通过某种方式传输文件(如 U 盘、移动硬盘等)。

二、联网机器操作

  1. 下载 Miniconda 安装脚本
  • 访问Miniconda 官方下载页面
  • 找到适合 Linux 的安装脚本(根据系统架构选择适合的版本,如 Miniconda3-latest-Linux-x86_64.sh)。
  • 下载安装脚本到本地。
  1. 传输安装文件
  • 将下载的安装脚本(如 Miniconda3-latest-Linux-x86_64.sh)传输到离线机器上(可使用 U 盘、移动硬盘等方式)。

三、离线机器操作

  1. 安装 Miniconda
  • 在离线机器上打开终端,导航到存放安装脚本的目录。
  • 运行以下命令安装 Miniconda:

bash Miniconda3-latest-Linux-x86_64.sh

  • 按照提示完成安装。安装过程会要求确认许可协议并选择安装路径。
  1. 配置环境变量:(不需要,安装过程已自动配置环境变量)
  • 安装完成后,需要将 Miniconda 的路径添加到 PATH 环境变量中。
  • 编辑 ~/.bashrc 或 ~/.zshrc 文件,添加以下内容:

export PATH=”/path/to/miniconda3/bin:$PATH”

(将 /path/to/miniconda3 替换为实际安装路径,如 /home/user/miniconda3)。

  • 使更改立即生效:

source ~/.bashrc

  • 验证安装是否成功:

conda –version

如果显示版本号,说明安装成功。

步骤二 依赖库安装

思路:联网机器下载打包,离线机器安装

1.联网Linux操作

1)安装 Miniconda(使用前面离线版本安装也可)

下载安装脚本

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

如果是 ARM 架构(如树莓派或苹果 M1 芯片),下载对应的版本:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh

运行安装脚本

bash Miniconda3-latest-Linux-x86_64.sh

按照提示完成安装。安装过程中会提示你接受许可协议并选择安装路径。

配置环境变量(不需要,安装过程已自动配置环境变量):安装完成后,将 Miniconda 的 bin 目录添加到 PATH 环境变量中:

export PATH=”/path/to/miniconda3/bin:$PATH”

将 /path/to/miniconda3 替换为实际安装路径。可以将此行添加到 ~/.bashrc 或 ~/.zshrc 文件中,以便每次终端启动时自动加载。

验证安装

conda –version

如果显示版本号,则安装成功。

创建一个满足现场目标的 Conda 环境:

conda create –name myenv python=3.8

激活新环境:

conda activate myenv

2)安装依赖库

在激活的环境中安装所需的依赖库:conda activate myenv(激活myenv环境)

在激活的环境中,使用以下命令安装指定版本的包:

(1)添加额外的依赖包下载通道(防止找不到指定包)

conda config –add channels conda-forge

(2)安装numpy、pandas、simplejson :

conda install numpy====1.20.0 pandas==1.1.5 simplejson==3.16.0

(3)安装pytorch:如果你使用的是 CPU 版本的 PyTorch(不支持 GPU),可以使用以下命令:(添加install python=3.8.10安装过程防止自动升级python版本)

conda install python=3.8.10 pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cpuonly -c pytorch

如果你使用的是 GPU 版本(例如 CUDA 11.1),可以使用类似以下的命令:

conda install python=3.8.10 pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.1 -c pytorch

(4)安装dmPython

(dmPython 是达梦数据库(DM Database)官方提供的 Python 接口模块,用于在 Python 应用程序中连接和操作达梦数据库。它遵循 Python 数据库 API 规范版本 2.0,提供了与达梦数据库进行交互的功能。)(python3.8.10版本可访问达梦7)

安装命令:pip install dmPython==2.5.8

3)Conda打包工具下载

pip命令安装:pip install conda-pack

或者conda命令安装:conda install -c conda-forge conda-pack

使用 conda-pack 打包环境

  1. 激活需要打包的环境:conda activate myenv
  2. 打包环境:conda pack -n myenv -o myenv.tar.gz

这会将当前激活的环境(或指定的环境)打包成一个 .tar.gz 文件,其中包含了环境的所有依赖和配置。

2.离线Linux操作

将打包好的 .tar.gz 文件传输到离线机器后,可以按照以下步骤使用:

  1. 解压打包的环境

创建文件夹:mkdir myenv

解压:tar -xzf myenv.tar.gz -C myenv

  1. 激活环境

命令:source myenv/bin/activate

  1. 验证环境

命令:conda list(列出当前激活的 Conda 环境中安装的所有包及其版本信息)

将 myenv 环境设置为默认运行环境,(非必需):

(以便终端直接执行 Python 文件,但该方法在代码中无法自动激活myenv环境)可以通过修改用户的 shell 配置文件(如 .bashrc 或 .zshrc)来实现。

要确定你当前使用的 shell 是 Bash 还是 Zsh:命令echo $SHELL

1. 修改配置文件

打开终端,编辑用户的 shell 配置文件(假设你使用的是 Bash):

nano ~/.bashrc

2. 添加自动激活环境的代码

在文件末尾添加以下内容:

注意:如果 myenv 不在 $HOME 目录下,请将路径修改为实际路径

# Activate myenv by default
if [ -d "$HOME/myenv/bin" ]; then
source $HOME/myenv/bin/activate
fi

3. 重新加载配置文件

3. 重新加载配置文件

保存文件并重新加载配置文件以使更改生效:

source ~/.bashrc

4. 验证设置

打开一个新的终端窗口或重新登录,然后运行以下命令验证环境是否已成功激活:

conda list

如果输出显示了 myenv 环境中的包及其版本信息,说明默认环境已设置成功。

添加到全局环境(非必需):

要将通过 conda-pack 打包的环境添加到全局环境中,可以通过以下步骤实现:

步骤 1****:解压打包的环境

在目标机器上,首先解压打包的环境文件:

mkdir -p myenv

tar -xzf myenv.tar.gz -C myenv

步骤 2****:修复环境路径

进入解压后的环境目录,运行 conda-unpack 修复路径:

source myenv/bin/activate

myenv/bin/conda-unpack

步骤 3****:将环境添加到 Conda 全局环境目录

将解压后的环境目录移动到 Conda 的默认环境目录中,或者创建一个软链接:

方法 1:移动环境目录

mv myenv ~/miniconda3/envs/

方法 2:创建软链接

ln -s /path/to/myenv ~/miniconda3/envs/myenv

步骤 4****:激活环境

通过 conda activate 激活环境:

conda activate myenv

此时,该环境已作为全局环境的一部分,可以通过 Conda 的环境管理功能进行操作。

步骤 5****:验证环境

运行以下命令验证环境是否正常工作:

conda list

注意事项

  1. 路径一致性:确保目标机器上的 Conda 安装路径与源机器一致,或者通过 conda-unpack 修复路径。
  2. 操作系统兼容性:conda-pack 打包的环境需要在相同的操作系统上使用。
  3. 环境名称冲突:如果目标机器上已存在同名环境,请先重命名或删除。

通过上述步骤,你可以将通过 conda-pack 打包的环境成功添加到全局环境中,便于管理和使用。

其他

安装dmPython

(dmPython 是达梦数据库(DM Database)官方提供的 Python 接口模块,用于在 Python 应用程序中连接和操作达梦数据库。它遵循 Python 数据库 API 规范版本 2.0,提供了与达梦数据库进行交互的功能。)

在 Linux 系统上使用 Conda 安装 dmPython 的步骤如下:

前提条件:

  • 安装达梦数据库

  • 确保已安装达梦数据库(DM 8.0 及以上版本),并设置好 DM_HOME 环境变量。例如:

export DM_HOME=/home/dmdba/dmdbms

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/drivers/dpi:$DM_HOME/bin

  • 参考达梦数据库的安装文档进行安装。

  • 安装 Python 和 pip

  • 确保已安装 Python 3.6.8 及以上版本,并配置好 pip。

安装 dmPython:

方式一:使用 pip 安装

在 Conda 激活的myenv环境中,使用以下命令安装 dmPython:

pip install dmPython

或者:

pip3 install dmPython

这是最常见的安装方式。

方式二:手动编译安装(如果需要从源码安装):

从达梦数据库安装目录的 drivers/python/dmPython 目录中获取源码。

进入源码目录并编译安装:

cd /path/to/dmdbms/drivers/python/dmPython

python setup.py install

确保已安装编译工具 gcc 和 python3-devel 依赖。

验证安装

运行命令,检查 dmPython 是否安装成功:pip list dmPython

注意事项

  • 环境变量:确保 DM_HOME 和 LD_LIBRARY_PATH 环境变量已正确配置。
  • 依赖项:如果手动安装,可能需要安装 gcc 和 python3-devel 依赖。
  • 版本兼容性:确保 Python 版本与 dmPython 版本兼容(推荐 Python 3.6.8 及以上)。

Java代码中调用python方法(开发过程)

如果 Conda 环境不在默认路径下,或者你希望明确指定 Conda 环境的路径,可以通过以下几种方法来实现。这些方法适用于在 Java 中使用 ProcessBuilder 调用 Python 脚本时,确保正确激活 Conda 环境并运行脚本。

方法 1****:直接指定 Conda 环境中的 Python 解释器路径

如果你知道 Conda 环境的完整路径,可以直接指定环境中的 Python 解释器路径。这是最直接的方法。

示例代码

// 指定 Conda 环境中的 Python 解释器路径

String condaEnvPythonPath = “/path/to/your/conda/envs/your_env_name/bin/python”; // 替换为你的 Conda 环境路径

String pythonScriptPath = “/path/to/your_script.py”; // 替换为你的 Python 脚本路径

// 创建 ProcessBuilder 对象

ProcessBuilder pb = new ProcessBuilder(condaEnvPythonPath, pythonScriptPath);

方法 2****:通过 conda run 指定环境

conda run 是一个方便的命令,可以在指定的 Conda 环境中运行脚本,而无需手动激活环境。你可以通过 ProcessBuilder 调用 conda run。

示例代码

// 指定 Conda 环境名称和 Python 脚本路径

String condaEnvName = “your_env_name”; // 替换为你的 Conda 环境名称

String pythonScriptPath = “/path/to/your_script.py”; // 替换为你的 Python 脚本路径

// 使用 conda run 命令

String command = String.format(“conda run -n %s python %s”, condaEnvName, pythonScriptPath);

// 创建 ProcessBuilder 对象

ProcessBuilder pb = new ProcessBuilder(“bash”, “-c”, command);

方法 3****:通过 Shell 脚本激活环境并运行脚本

如果你需要更复杂的环境设置,可以通过 Shell 脚本激活环境并运行 Python 脚本。然后在 Java 中调用该 Shell 脚本。

Shell 脚本示例 (run_script.sh)

#!/bin/bash
# 激活 Conda 环境
source /path/to/your/conda/bin/activate your_env_name
# 运行 Python 脚本
python /path/to/your_script.py

Java 调用 Shell 脚本

// 指定 Shell 脚本路径

String scriptPath = “/path/to/run_script.sh”;

// 创建 ProcessBuilder 对象

ProcessBuilder pb = new ProcessBuilder(“bash”, scriptPath);