Python环境及依赖离线安装
一、python环境安装
方法一
说明:目的主机(现场环境,离线),本地主机(联网),目的主机与本地主机系统架构相同,以安装python3.9.9为例。
安装步骤(依赖包迁移过程):
- 检查目的主机的python版本(假设为python3.9.9)
$ python3 –version (查看默认链接的python3版本)
$ ls /usr/bin/python* (这个命令会列出 /usr/bin 目录下所有以 python 开头的文件,通常包括不同版本的 Python 解释器)
- 在本地主机安装与目的主机相同版本的python(保证版本完全相同尽量避免兼容性问题)
$ sudo apt update
$ sudo apt install python3=3.9.x
- 在本地主机下载并导出需要的python依赖包
$ python3.9 -m pip download -d packages -r requirements.txt
说明:packages为下载包的目录(下载后生成),requirements.txt为所需的包列表文件(下载前提供)
- 在目的主机安装离线依赖包
$ 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 盘、移动硬盘等)。
二、联网机器操作
- 下载 Miniconda 安装脚本:
- 访问Miniconda 官方下载页面。
- 找到适合 Linux 的安装脚本(根据系统架构选择适合的版本,如 Miniconda3-latest-Linux-x86_64.sh)。
- 下载安装脚本到本地。
- 传输安装文件:
- 将下载的安装脚本(如 Miniconda3-latest-Linux-x86_64.sh)传输到离线机器上(可使用 U 盘、移动硬盘等方式)。
三、离线机器操作
- 安装 Miniconda:
- 在离线机器上打开终端,导航到存放安装脚本的目录。
- 运行以下命令安装 Miniconda:
bash Miniconda3-latest-Linux-x86_64.sh
- 按照提示完成安装。安装过程会要求确认许可协议并选择安装路径。
- 配置环境变量:(不需要,安装过程已自动配置环境变量)
- 安装完成后,需要将 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 打包环境
- 激活需要打包的环境:conda activate myenv
- 打包环境:conda pack -n myenv -o myenv.tar.gz
这会将当前激活的环境(或指定的环境)打包成一个 .tar.gz 文件,其中包含了环境的所有依赖和配置。
2.离线Linux操作
将打包好的 .tar.gz 文件传输到离线机器后,可以按照以下步骤使用:
- 解压打包的环境:
创建文件夹:mkdir myenv
解压:tar -xzf myenv.tar.gz -C myenv
- 激活环境:
命令:source myenv/bin/activate
- 验证环境:
命令: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 |
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
注意事项
- 路径一致性:确保目标机器上的 Conda 安装路径与源机器一致,或者通过 conda-unpack 修复路径。
- 操作系统兼容性:conda-pack 打包的环境需要在相同的操作系统上使用。
- 环境名称冲突:如果目标机器上已存在同名环境,请先重命名或删除。
通过上述步骤,你可以将通过 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)
|
Java 调用 Shell 脚本
// 指定 Shell 脚本路径
String scriptPath = “/path/to/run_script.sh”;
// 创建 ProcessBuilder 对象
ProcessBuilder pb = new ProcessBuilder(“bash”, scriptPath);