linux安装miniconda3
工作中需要部署python环境,综合考虑后选择离线部署,利用anaconda3进行环境打包复制等
从 清华源下载anaconda3 Linux版本,我使用的是Anaconda3-2020.02-Linux-x86_64.sh。
1.上传离线文件安装
安装miniconda3
默认安装在root目录下
bash ./Anaconda3-2020.02-Linux-x86_64.sh
初始化conda
(一般安装时有选项 选yes 自动初始化)
安装时有选项 选yes 自动初始化,不用进行下面的操作
/root/anaconda3/bin/conda init
激活base环境
source ~/.bashrc
2.切换conda虚拟环境
退出conda虚拟环境
conda deactivate
进入conda虚拟环境
source activate base
3.测试运行
如何在生产环境使用base或者其他环境?
4.离线pip第三方库
如离线安装pymysql,首先下载.whl文件:https://mirrors.cloud.tencent.com/pypi/simple/pymysql/,保存在linux的/tmp/目录下
然后,在应用python环境下运行
pip install /tmp/PyMySQL-0.10.0-py2.py3-none-any.whl
如离线安装gmssl,需要先安装pycryptodomex,我的linux是麒麟系统arm架构的,python==3.8.8,所以pycryptodomex的版本下载了:
pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip install /tmp/pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
然后,下载gmssl:gmssl-3.2.2-py3-none-any.whl
pip install /tmp/gmssl-3.2.2-py3-none-any.whl
5.脚本部署
py文件test运行
# -*- coding:utf-8 -*-
from gmssl import sm4
import pymysql
def sm4_decode(key, data):
"""
国密sm4解密
:param key: 密钥
:param data: 密文数据
:return: 明文hex
"""
sm4Alg = sm4.CryptSM4()
sm4Alg.set_key(key.encode(), sm4.SM4_DECRYPT)
deRes = sm4Alg.crypt_ecb(bytes.fromhex(data))
deHexStr = deRes.decode()
print("解密后明文:", deHexStr)
return deHexStr
if __name__ == '__main__':
data = '5afbb4e0b581314c8bbff8a80c45b6f5'
key = 'abcdef6666666666'
sm4_decode(key,data)
测试结果
sh文件定时运行
#!/bin/bash
datetime=$(date +%Y%m%d)
log_dir="/tmp/log/${datetime}.log"
if [ -f "${log_dir}" ];then
echo 'file exists!' >> ${log_dir}
else
touch ${log_dir}
fi
source activate base
python /tmp/main.py >> ${log_dir}2>&1
echo '====de_test.sh=====Successsed:------------------------' >> ${log_dir}