判断网站模板版本,视频素材库,网站建设与维护浙江省试题,视频链接怎么制作Windows环境下用python嵌入式环境跑程序可太方便了1. 嵌入式包默认的文件夹设置2. 建立python环境文件夹3. 添加python索引包路径4. 安装pip和requirements5. 运行环境6. 完整的powershell install.bat 脚本之前觉得windows电脑安装的python环境太乱太不纯净#xff0c;或者临…
Windows环境下用python嵌入式环境跑程序可太方便了1. 嵌入式包默认的文件夹设置2. 建立python环境文件夹3. 添加python索引包路径4. 安装pip和requirements5. 运行环境6. 完整的powershell install.bat 脚本之前觉得windows电脑安装的python环境太乱太不纯净或者临时需要去别的办公点快速运行python环境比较麻烦因此了解了一下python嵌入式版本。上一期windows环境下安装多个任意版本的python环境教大家如何搭建一个python嵌入式环境的几个基本步骤。本期用脚本将他们串起来。
首先我的思路是安装python基本环境 添加python包索引路径 配置pip 用pip下载所需的第三方库最后运行测试。因此windows脚本就围绕这几个步骤展开。
1. 嵌入式包默认的文件夹设置
文件夹设置与工程类似pkg是用于安装python环境的配置文件src是源代码test是测试脚本存放路径
5. 目录结构根目录 ---|--- pkg python环境安装包|--- src 源代码存放路径|---test (测试脚本存放路径)2. 建立python环境文件夹
根据pycharm的习惯环境一般安装在venv下面。因此命令需要mkdirbat脚本新建文件夹的命令是md。我们注意到一般从官网下载python 嵌入式包是zip压缩文件因此我们也需要用一个压缩脚本将其压缩。我选择的是winrar当然为了防止大家不爱用这个软件也添加了手动解压的判断分支。
脚本如下
echo\
echo 环境检查中......
if exist %head%\venv (echo 已经存在环境如果您希望重新安装或修复环境请删除该文件夹并重新执行本文件pauseexit
)if exist D:\Program Files\WinRAR\winrar.exe (set localwinrarD:\Program Files\WinRAR\winrar.exegoto compressFileLine
) else (echo 默认路径下没有winrar文件...echo 请输入您电脑上的winrar可执行文件路径和名字echo (如 C:\Program Files\WinRAR\winrar.exe)set /p localwinrar(如果没有winrar按回车手动解压):
)
echo\if %localwinrar% (echo 请手动解压至%head%\venv\python该路径下后pausegoto bulidPythonBaseLine
):compressFileLine
echo\
echo 正在解压缩所需的文件...
if exist %head%\pkg\python-3.9.13-embed-amd64.zip (md %head%\venvmd %head%\venv\pythonrem 测试代码后续需要继续改进%localwinrar% e -or %head%\pkg\python-3.9.13-embed-amd64.zip %head%\venv\python
) else (echo 关键文件丢失安装失败pauseexit
)
echo\3. 添加python索引包路径
python索引包路径是由python*._pth文件决定的为了支持第三方库索引和自己编写代码的索引。我们需要编写一个python脚本修改这个python*._pth文件。 python脚本update-pth.py
import syswith open(python39._pth, a) as f:f.writelines([\n, Lib\\site-packages\n, ..\n, ..\\..\\src\n])BAT脚本
:bulidPythonBaseLine
echo\
echo 正在构建python包索引环境...if exist %head%\venv\python (echo\
) else (echo 不存在有效的python路径pauseexit
)cd %head%\venv\python
set pythonenv%head%\venv\pythonrem 执行一条命令将命令结果赋值给pythonVersion
rem for /f delims %%t in (命令字符串) do set str%%tfor /f delims %%t in (.\python.exe --version) do set pythonVersion%%t
echo 您当前所使用的python环境%pythonVersion%set pyv3103.10
set pyv393.9
set pyv383.8
set pyv373.7
set pyv363.6setLocal EnableDelayedExpansion
if not x!pythonVersion:%pyv310%!x%pythonVersion% (echo 310
) else if not x!pythonVersion:%pyv39%!x%pythonVersion% (echo 当前索引环境为Python3.9rem 不知道为啥这里有bug有的时候必须要先开一下再关掉否则没法执行rem echo onrem echo offset fileNamepython39._pthecho 修改索引文件%fileName%%pythonenv%\python.exe %head%\pkg\update-pth.py %fileName%) else if not x!pythonVersion:%pyv38%!x%pythonVersion% (echo 38
) else if not x!pythonVersion:%pyv37%!x%pythonVersion% (echo 37
) else if not x!pythonVersion:%pyv36%!x%pythonVersion% (echo 36
) else (echo 不支持的版本!!!pauseexit
)
endlocal
echo\4. 安装pip和requirements
使用get-pip.py 安装pip官方已经给出的脚本没啥好说的复制下载写成脚本即可。然后根据项目需要下载requirements中的内容pip的使用详细方法具体可以参考https://blog.csdn.net/immerseinstudy/article/details/124072198
echo\
echo 正在安装pip环境...
%pythonenv%\python.exe %head%\pkg\get-pip.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
echo Done
echo\echo\
echo 正在安装项目所需安装包...
%pythonenv%\Scripts\pip.exe install -r %head%\pkg\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
cd %head%
echo Done
echo\5. 运行环境
运行环境的方法如下python.exe main.py。只不过添加了绝对路径。注意bash脚本可以通过pwd获取当前路径而bat脚本的当前路径是存放在%cd%变量中。
echo\
echo 运行测试用例...
md %head%\test
%pythonenv%\python.exe %head%\src\main.py
echo 运行成功
echo\echo 恭喜 ^_^!! 环境搭建完成~~有需要我会把完整的嵌入式压缩包放上来因为我目前还不知道怎么上传内容到csdn。。
6. 完整的powershell install.bat 脚本
echo offecho\
echo XXX软件 -- 作者XXX
echo\echo ----------------------------------------
echo 嵌入式python环境安装中......
echo 【1】本地环境中需要先安装好WinRAR环境
echo ----------------------------------------
set head%cd%echo\
echo 环境检查中......
if exist %head%\venv (echo 已经存在环境如果您希望重新安装或修复环境请删除该文件夹并重新执行本文件pauseexit
)if exist D:\Program Files\WinRAR\winrar.exe (set localwinrarD:\Program Files\WinRAR\winrar.exegoto compressFileLine
) else (echo 默认路径下没有winrar文件...echo 请输入您电脑上的winrar可执行文件路径和名字echo (如 C:\Program Files\WinRAR\winrar.exe)set /p localwinrar(如果没有winrar按回车手动解压):
)
echo\if %localwinrar% (echo 请手动解压至%head%\venv\python该路径下后pausegoto bulidPythonBaseLine
):compressFileLine
echo\
echo 正在解压缩所需的文件...
if exist %head%\pkg\python-3.9.13-embed-amd64.zip (md %head%\venvmd %head%\venv\pythonrem 测试代码后续需要继续改进%localwinrar% e -or %head%\pkg\python-3.9.13-embed-amd64.zip %head%\venv\python
) else (echo 关键文件丢失安装失败pauseexit
)
echo\:bulidPythonBaseLine
echo\
echo 正在构建python包索引环境...if exist %head%\venv\python (echo\
) else (echo 不存在有效的python路径pauseexit
)cd %head%\venv\python
set pythonenv%head%\venv\pythonrem 执行一条命令将命令结果赋值给pythonVersion
rem for /f delims %%t in (命令字符串) do set str%%tfor /f delims %%t in (.\python.exe --version) do set pythonVersion%%t
echo 您当前所使用的python环境%pythonVersion%set pyv3103.10
set pyv393.9
set pyv383.8
set pyv373.7
set pyv363.6setLocal EnableDelayedExpansion
if not x!pythonVersion:%pyv310%!x%pythonVersion% (echo 310
) else if not x!pythonVersion:%pyv39%!x%pythonVersion% (echo 当前索引环境为Python3.9rem 不知道为啥这里有bug有的时候必须要先开一下再关掉否则没法执行rem echo onrem echo offset fileNamepython39._pthecho 修改索引文件%fileName%%pythonenv%\python.exe %head%\pkg\update-pth.py %fileName%) else if not x!pythonVersion:%pyv38%!x%pythonVersion% (echo 38
) else if not x!pythonVersion:%pyv37%!x%pythonVersion% (echo 37
) else if not x!pythonVersion:%pyv36%!x%pythonVersion% (echo 36
) else (echo 不支持的版本!!!pauseexit
)
endlocal
echo\echo\
echo 正在安装pip环境...
%pythonenv%\python.exe %head%\pkg\get-pip.py -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
echo Done
echo\echo\
echo 正在安装项目所需安装包...
%pythonenv%\Scripts\pip.exe install -r %head%\pkg\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
cd %head%
echo Done
echo\echo\
echo 运行测试用例...
md %head%\test
%pythonenv%\python.exe %head%\src\main.py
echo 运行成功
echo\echo 恭喜 ^_^!! 环境搭建完成~~
pause