跳转至

python环境配置

构建过程python环境配置

data-workbench可以不依赖Python,通过配置CMakeLists.txtDA_ENABLE_PYTHON选项可以禁用python环境,此时将不会编译python相关模块(如果你仅仅只是为了使用绘图模块,可以把python环境禁用)

如果开启将自动查找系统的python环境并进行依赖

python环境要求和依赖说明

python环境有如下要求:

  • 至少是python3.7

python环境需要安装的库:

1
pip install Loguru "numpy<=1.26.4" pandas scipy openpyxl chardet PyWavelets pyarrow

如果你的python版本小于3.8,还需额外导入typing_extensions

1
pip install typing_extensions

为了兼容性,numpy建议2.0以下,这里推荐使用1.26.4(python3.7等低版本python不用考虑此问题)

下面是data-workbench依赖的python库说明

  • Loguru主要用于进行python脚本的日志记录
  • openpyxl是pandas导入excel文件的依赖,如果没有安装,则无法导入excel文件
  • chardet主要用于检测字符编码
  • PyWavelets是进行小波分析的库
  • pyarrow是dataframe进行扩展数据导入的库,支持parquet(Partitioning Parquet files)和Feather

python在win11操作系统下,安装package会把包安装到用户名\AppData\Roaming\Python\Pythonxx\site-packages下,这对于把整个python打包是不利的,因此需要在执行pip install时加上参数--target指定安装路径,例如:

1
pip install --target="../Lib/site-packages" loguru numpy==1.26.4 pandas scipy openpyxl chardet PyWavelets pyarrow

项目目录下已经把所有依赖放到了requirements.txt文件里,可以直接使用pip install -r requirements.txt进行安装

程序运行时查找python逻辑

dataworkbench查找python的逻辑是:

  1. 先查看程序运行目录下是否存在python-config.json,如果有,讲读取python-config.json里的config/interpreter下的值,以此作为python解析器的路径,python-config.json的模板如下:

json { "config": { "interpreter": "path to python interpreter" } }

程序安装目录可以使用${current-app-dir}变量替代,例如python安装在程序安装目录下,那么${current-app-dir}的值就是程序安装目录,如:${current-app-dir}/python311/python.exe

  1. 如果没有python-config.json文件,将使用where python来查找系统的python环境