Loading... # 引言 就在刚刚,接了一个PDF数据提取的项目,因为格式不统一,需要OCR识别,并且还需要自然语言处理,因为项目比较急,选择python开发,因为PDF数据比较敏感,不能发给我本地处理,所以需要在他们的机器上执行,选择pyinstaller打包其实也是个比较不错的选择,但是效率比较低,打包起来可能存在一些其它问题。 # 准备阶段 1. 下载开发版的python安装包 2. 使用virtualenv创建项目 ![image.png](https://www.zunmx.top/usr/uploads/2024/02/3467790924.png) # 安装需要的依赖 ⚠ 这里安装的依赖必须在虚拟环境中安装 ![image.png](https://www.zunmx.top/usr/uploads/2024/02/141672819.png) 注意前面的(venv),这代表着在虚拟环境中,也可以在venv\Scripts下执行pip进行安装 # 构建启动脚本 1. 把安装包中的python解压(你可以选择在沙箱或者虚拟机中安装),这里为什么不选择系统中安装的python是因为更加简洁(如图,把python复制到项目路径中,如:python310) ![image.png](https://www.zunmx.top/usr/uploads/2024/02/533074323.png) ![image.png](https://www.zunmx.top/usr/uploads/2024/02/2015517620.png) 2. 修改激活脚本和配置文件 > 这里我使用了python进行处理 > > ```python > import os > > base_dir = os.path.abspath('.') > activate_path = os.path.join(base_dir, 'venv', 'Scripts', 'activate.bat') > env_cfg_path = os.path.join(base_dir, 'venv', 'pyvenv.cfg') > with open(activate_path, 'r', encoding='gbk') as f: > txt = f.read() > txt = txt.replace(r'xxxxxxxxxx', os.path.join(base_dir, 'venv')) > with open(activate_path, 'w', encoding='gbk') as f2: > f2.write(txt) > > os.system("") > os.system(activate_path) > > with open(env_cfg_path, 'r', encoding='gbk') as f: > txt = f.read() > txt = txt.replace(r'xxxxxxxxxx', os.path.join(base_dir, 'python310')) > with open(env_cfg_path, 'w', encoding='gbk') as f2: > f2.write(txt) > with open("run.bat", 'w') as f: > f.write("cd " + base_dir + "\n") > f.write(base_dir[0:2] + " \n") > f.write("call " + activate_path + "\n") > f.write("python main.py\n") > > os.system("run.bat") > ``` 注意代码中的`xxxxxxxxxx`,需要修改成原来文件中的内容 ℹ:这个代码是修改配置文件,最后启动`run.bat`,`run.bat`将会启动`activate.bat`,进入到虚拟环境中,并且执行`main.py`, `main.py` 是主程序入口 3. 执行`start.py` ![image.png](https://www.zunmx.top/usr/uploads/2024/02/1100003732.png) # 结语 这个方法适用于没有python环境,或者存在多个环境的机器,原理都是相似的,上面的只适用于windows系统,如果是其它系统,把python换成相应的版本,并且修改`activate.bat`的代码换成对应系统的,如linux的`activate`,修改`VIRTUAL_ENV`字段的值,配置文件路径修改成正确的路径,并且最终启动的`os.system("run.bat")`改成相应的命令即可。 ## 修改的文件 activate.bat pyvenv.cfg ## 建议 如果频繁修改文件路径,`start.py` 就不能这么写了,因为这只能修改1次。 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏