标签 python 下的文章

Linux | Python3.10.13源码编译安装


需求

最近再适配统信的机器,但是统信的源里的软件都不是最新的,python最高版本就能支持到3.7。然而这边的三方需要的python版本是3.10的,而且需要dev版本,就需要自己重新编译了。

基础依赖环境安装

sudo apt install libffi-dev tcl-dev tk-dev libbz2-dev zlib1g-dev libsqlit3-dev libxml2-dev libssl-dev libxslt1-dev liblzma-dev libreadline-dev llvm libncurses5-dev libncursesw5-dev xz-utils libgdbm-dev libncurses-dev

编译及安装

cas_user@casuser:/data/home/cas_user/code/$ tar -zxvf Python-3.10.13.tgz  # 解压
cas_user@casuser:/data/home/cas_user/code/$ cd Python-3.10.13
cas_user@casuser:/data/home/cas_user/code/Python-3.10.13$ ./configure --prefix=/home/user/python_install_path --enable-shared CFLAGS=-fPIC  # 配置参数
cas_user@casuser:/data/home/cas_user/code/Python-3.10.13$ make -j8 && sudo make install  # 编译及安装

配置参数解析

配置项解释
--prefix=path指定安装目录
--enable-shared生成.so动态库
CFLAGS=-fPIC编译选项
--enable-optimizations启用优化

其他参数以后补充。


Linux: 编译安装Python指定版本


描述

需要一个指定版本的python,而且需要源码编译。这里用的是3.8.9,不同版本的编译大同小异。

下载指定python版本

python下载地址python38

解压并进入目录

tar xvf python-3.8.9.tar.xz
cd Python-3.8.9

配置及编译

./configure --enable-shared --enable-optimizations --prefix=/home/ciomp/public/python38
make
make install

查看结果

屏幕截图 2023-04-18 150608.png


python: 解压缩rar


问题

所里换了台新电脑,好多环境都要重新配置,之前跟新包提交git已经脚本化,配置的那叫一个舒爽,换完电脑都要重新配置,这里记录一下过程,省着以后又得重新上网找。

下载UnRar

rar官网:点击此处访问
UnRarDLL下载:点击此处下载

安装

直接执行下载包,默认路径C:Program Files (x86)UnrarDLL,默认安装即可

添加环境变量

cmd执行(64位系统):

setx "UNRAR_LIB_PATH" "C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll" /m

cmd执行(32位系统):

setx "UNRAR_LIB_PATH" "C:\Program Files (x86)\UnrarDLL\UnRAR.dll" /m

引号防止空格有问题,/m 指的是添加到系统变量中。

添加成功后再打开系统的环境变量如下图:
屏幕截图 2023-01-07 100420.png

python 安装 unrar

pip install unrar

python解压代码

from unrar import rarfile

def decompression(souce_path,target_path):
    shutil.rmtree(target_path)
    os.mkdir(target_path)
    rar=rarfile.RarFile(souce_path)
    print("开始解压文件")
    # 判断同名文件夹是否存在,若不存在则创建同名文件夹
    # print(os.path.splitext(souce_path))
    if os.path.isdir(target_path):
        rf_list = rar.namelist() # 得到压缩包里所有的文件 
        # print('rar文件内容', rf_list) 
    else:
        os.mkdir(target_path)
    rar.extractall(target_path) # 解压文件
    print("文件解压成功")

def main(argv):
    decompression("E:\\test.rar", "E:\\test\\")