ubuntu下使用 conda 管理 pylith
@TOC
1、anaconda 安装
anaconda下载 清华镜像: mirrors.tuna.tsinghua.edu.cn/help/anacon...
(1)下载 anaconda
选择下载 Ubuntu 版本的.sh
版本的.anaconda
包。

下载完成 anaconda
文件包在/home/Downloads/
目录。

(2)anaconda 安装
任意位置打开终端,复制执行以下命令进入 /home/Downloads/
目录
shell
cd $HOME
cd Downloads/
安装 anaconda
,其中Anaconda3-2022.10-Linux-x86_64.sh
替换为自己下载的anaconda
包。
shell
bash Anaconda3-2022.10-Linux-x86_64.sh

一直按enter
键,阅读完anaconda
说明,直至出现以下是否同意许可,输入yes
,回车。

确认安装位置,如果无需修改,输入 yes
,回车。

初始化Anaconda,输入 yes
,回车。即可完成安装。
(3)anaconda 验证
安装完成后,打开 /home/
文件夹下的 .bashrc
文件,如果没有文件则需要打开隐藏文件选项。

检查文件有没有以下conda
的环境变量设置。

如果没有成功添加环境变量,手动添加(需要修改相关地址),
shell
# 默认环境变配置,需要更改 user 为自己用户名
__conda_setup="$('/home/user/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/user/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/user/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/user/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
打开终端,输入
shell
conda -V
显示当前安装的
anaconda
版本号。
anaconda
具体安装教程【Ubuntu安装Anaconda】步骤+Anconda常用命令。
2、pylith 安装
具体安装教程ubuntu下安装配置 pylith 与 paraview。或打开本账号主页即可。
3、添加 pylith 环境到 anaconda 管理
查看系统已存在的conda
环境,避免创建新环境报错。
bash
conda env list

(1)修改原本 pylith 环境变量
注释掉原本pylith
环境变量中有关Python
环境的部分,打开 .bashrc
文件,注释掉
bash
export PYTHONHOME="$pylith"
export PYTHONPATH="$pylith/lib/python3.10/site-packages:$pylith/lib64/python3.10/site-packages"
注释后pylith
环境变量变为
bash
export pylith=/home/user/pylith
# export PYTHONHOME="$pylith"
# export PYTHONPATH="$pylith/lib/python3.10/site-packages:$pylith/lib64/python3.10/site-packages"
export PATH="$pylith/bin:$PATH"
export LD_LIBRARY_PATH="$pylith/lib:$pylith/lib64"
修改完成后保存。
(2)创建于 pylith 相同版本的 Python 环境
我们安装的 pylith 4.0.0
基于 Python 3.10.0
,所以使用 anaconda
创建 Python
版本为3.10.0
的环境pylith_libenv
。
shell
conda create -n pylith_libenvs python=3.10


为了激活环境方便快捷,我们在 .bashrc
文件中添加如下指令。
bash
alias pylith_libenv='source activate pylith_libenv'
保存 .bashrc
文件重启终端后使用 pylith_libenv
命令即可激活环境。


(3)将 pylith 安装路径下的 Python 包文件拷贝到 conda 环境中
方法一
pylith
的 python
包文件位于 /home/user/anaconda3/envs/pylith_libenvs/lib/python3.10/site-packages
文件夹下。
首先我们需要删除conda
环境 pylith_libenv
下的所有包文件(可选操作)。
<font size=4 color= >注意!!!一定确保进入
/home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
文件,否则会删除其他重要文件。
bash
# 进入文件夹
cd /..
# 需要更改 user 为自己用户名
cd /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
# 删除此文件夹下所有文件
rm -rf *
使用ls
命令检查文件是否全部删除。如果没有任何输出则已全部删除。
bash
ls

复制pylith
环境当前文件夹下
bash
cd /..
# 需要更改 user 为自己用户名
cp -rp /home/user/pylith/lib/python3.10/site-packages/* /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
可能较慢,耐心等待复制完毕。

再次进入文件夹检查文件是否存在。
bash
# 需要更改 user 为自己用户名
cd /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
# 删除此文件夹下所有文件
ls

方法二
我们使用pip
命令在conda环境中重新安装和pylith
一样的Python
环境。
首先需要在.bashrc
文件中注释掉有关conda的环境变量。将第一步注释掉的pylith
环境变量取消注释。
bash
# 默认环境变配置,需要更改 user 为自己用户名
#__conda_setup="$('/home/user/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
#if [ $? -eq 0 ]; then
# eval "$__conda_setup"
#else
# if [ -f "/home/user/anaconda3/etc/profile.d/conda.sh" ]; then
# . "/home/user/anaconda3/etc/profile.d/conda.sh"
# else
# export PATH="/home/user/anaconda3/bin:$PATH"
# fi
#fi
#unset __conda_setup

然后重启终端,执行
bash
# 需要更改 user 为自己用户名
pip freeze > /home/user/anaconda3/envs/pylith_libenv/requirements.txt
# 打开requirements.txt文件
sudo gedit /home/user/anaconda3/envs/pylith_libenv/requirements.txt
执行完成后会在/home/user/anaconda3/envs/pylith_libenv/
目录下得到一个requirements.txt
文件。
但是这个文件存在问题需要修改
pylith、pyliia、spatialdata
的路径。并且注释掉netCDF4
行,后面要通过conda安装。
首先删除pylith、pyliia、spatialdata
的想关行,第14、16以及19行,保存文件。
使用cd命令进入/home/user/pylith/lib/python3.10/site-packages/
文件夹,使用ls查看文件夹,找到与pylith、pyliia、spatialdata
相关的库文件夹。
bash
# 需要更改 user 为自己用户名
cd /..
cd /home/user/pylith/lib/python3.10/site-packages
ls
在使用
pip
安装之前先复制pylith、pyliia、spatialdata
相关的库文件,因为通过pip安装较为复杂,我们直接复制pylith
已有的三个库文件。
bash
# 需要更改 user 为自己用户名
cd /..
cp -rp /home/user/pylith/lib/python3.10/site-packages/pythia /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
cp -rp /home/user/pylith/lib/python3.10/site-packages/pythia-1.1.0.dist-info /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
cp -rp /home/user/pylith/lib/python3.10/site-packages/spatialdata /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
cp -rp /home/user/pylith/lib/python3.10/site-packages/spatialdata-3.1.0.dist-info /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
cp -rp /home/user/pylith/lib/python3.10/site-packages/pylith /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
cp -rp /home/user/pylith/lib/python3.10/site-packages/pylith-4.0.0.dist-info /home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages/
然后我们在将.bashrc
文件中注释掉有关conda
的环境变量取消注释,将第一步注释掉的pylith
环境变量重新注释,并重启终端。
激活conda
环境
然后我们执行pip
安装库文件。
bash
# 需要更改 user 为自己用户名
pip install -r /home/aduser/anaconda3/envs/pylith_libenv/requirements.txt

最后我们执行pip
安装库文件,最后要使用conda安装之前注销掉的netCDF4
库。
bash
conda install netCDF4==1.5.7
输入
pip
命令查看安装结果。
bash
pip list

(3)更新 pylith_libenv 环境下 Python 解释器位置
更新pylith_libenv
环境下Python
解释器位置
bash
# 进入pylith_libenv环境
pylith_libenv
# conda activate pylith_libenv
# 需要更改 user 为自己用户名
# export PYTHONHOME=/home/user/anaconda3/envs/pylith_libenv
# export PYTHONPATH=/home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages
conda env config vars set PYTHONHOME=/home/user/anaconda3/envs/pylith_libenv
conda env config vars set PYTHONPATH=/home/user/anaconda3/envs/pylith_libenv/lib/python3.10/site-packages
通过以下指令查看是否成功更新路径
bash
# 查看当前环境环境变量
echo $PYTHONHOME
echo $PYTHONPATH

4、测试 pylith 是否配置成功
重启终端,在终端输如pylith
命令
bash
pylith
显示如下内容即完成环境迁移。
或者我们使用pylith
的box-2d*
示例检验。
bash
# 进入示例文件夹,user更改为自己用户名
cd /home/user/pylith/src/pylith-4.0.0/examples/box-2d/
# 运行示例
pylith step01_axialdisp.cfg
终端中输入如下输出,如果结果如图并没有报错,配置成功。
