最近为客户开发一个对接Wind金融数据库的Excel数据库,需要用Python做中间层,但Python针对 一般投资与金融行业的人员来说,部署Python环境比较复杂,并且也不太友好,因此我就想把Python环境给客户配置好,客户拿到文件之后就可以使用,虽然交付的文件小不了,但总体能够确保客户即开即用。今天就给大家说一下怎么去做一个便携版的Python运行环境。
首先:在Python官方网站下载一个32位版的 Python-Embed的软件包,该软件包非常的小
下载后,解压到一个文件夹下,比如X86吧,就得到一个便携版的Python运行环境了。
但该运行环境只包括了一些基础库,甚至连软件包管理工具都没有,下一步我们把pip工具安装到该运行环境中。
在
https://bootstrap.pypa.io/get-pip.py 下载到 get-pip.py 放到刚刚的运行环境目录中。
用记事本打开python38._pth,去掉 import site 这行命令前的 # 号
按Win+R 打开运行,输入cmd并打开命令提示符,并进入该python环境目录,输入以下命令
一段时间后,pip就安装好了。不过为了使用该环境的pip安装,你需要以当前目录为工作目录,也就是cd到该目录。使用以下命令进行安装
.\python -m pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
该命令会在x86这个目录下建立软件包所需的目录结构。
如法炮制,安装你要分发的python应用所需要的依赖包。
现在我们整个运行环境就搭建好了。但怎么做到让客户即开即用呢?答案是,使用批处理文件自动设置运行变量。
在X86这个目录下建立 env.cmd 文件,我们用该文件为python环境设置运行变量。
其中:
Set Path=%~dp0:%~dp0Scripts:%PATH% 将批处理文件所在目录,其子目录Scripts增加到PATH环境变量
后面三行是为了将 WindPy相关库文件(该库为与Wind数据库进行对接时需要的文件)告诉给Python便携环境。最终目的为将WindPy.dll与WindPy.py两个文件位置写入到 lib\site-packages\WindPy.pth 文件中,效果如下:
最后一行为,使用python命令调起你为客户开发的python主程序。
最后,我们将为客户开发的程序与运行环境同一目录(可以随便放,方便打包即可),写一个启动脚本:
@echo off
title 上市公司数据转换(适配)程序
color 0f
..\x86\env.cmd stock_utils.py
pause
该脚本中,我们使用了先前编制的环境激活文件 env.cmd,并将我们python程序的主程序传入给运行环境,程序就可以运行起来了。
最后把Python应用与运行环境目录一起打包给客户,就可以即开即用了。