Windows环境下用python嵌入式环境跑程序可太方便了

  • 1. 嵌入式包默认的文件夹设置
  • 2. 建立python环境文件夹
  • 3. 添加python索引包路径
  • 4. 安装pip和requirements
  • 5. 运行环境
  • 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下面。因此命令需要mkdir,bat脚本新建文件夹的命令是md。我们注意到一般从官网下载python 嵌入式包是zip压缩文件,因此我们也需要用一个压缩脚本将其压缩。我选择的是winrar,当然为了防止大家不爱用这个软件,也添加了手动解压的判断分支。

脚本如下:

echo\
echo 环境检查中......
if exist %head%\venv (echo 已经存在环境,如果您希望重新安装或修复环境,请删除该文件夹并重新执行本文件pauseexit
)if exist "D:\Program Files\WinRAR\winrar.exe" (set localwinrar=D:\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 pyv310=3.10
set pyv39=3.9
set pyv38=3.8
set pyv37=3.7
set pyv36=3.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 fileName=python39._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 localwinrar=D:\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 pyv310=3.10
set pyv39=3.9
set pyv38=3.8
set pyv37=3.7
set pyv36=3.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 fileName=python39._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

Windows环境下用python嵌入式环境跑程序可太方便了相关推荐

  1. 基于Python实现的微信小程序校园导航系统 | Python第一课环境篇 | Hellow World 程序 | 不同环境下搭建Python编程环境

    一:Hellow World 程序 1.安装Python3 2.运行Python代码片段 Python自带了一个在终端窗口中运行的解释器,让你无需保存并运行整个程序就能尝试运行Python代码片段. ...

  2. Geany编辑器win7环境下配置Python编程环境

    Geany是一款简单但功能强大的文本编辑器,可以为Python提供便利的编程环境. Geany官方下载地址:https://www.geany.org/Download/Releases,支持wind ...

  3. Linux环境下安装python并编写简单程序

    本项目以python 3.9.12为例(最新版本可能会有些兼容性问题,所以我们不选择最新版本) 在Linux(ubuntu)环境下进行安装python并编写简单的程序,输出自己的名字 1.在官网进行下 ...

  4. windows环境下搭建python开发环境的方法_windows下python开发环境的搭建

    首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载. im ...

  5. 【Docker】利用docker在window环境下部署python开发环境

    这里写目录标题 1:打开window的一些设置 2:下载docker desktop 3:更改docker 下载源 4:拉取镜像,docker pull ubuntu 5:启动容器,安装ssh 6:把 ...

  6. 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入

    成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入 目录 解决问题 解决思路 解决方法 解决问题 .pyx格式文件,在window ...

  7. windows系统下的python环境的搭建

    windows系统下如何搭建python环境呢? 方法一: 首先,去python的官方网站上下载python 我就随便选择了一个最新版,你们需要特定版本的就下载特定版本的 链接地址:https://w ...

  8. 在没有网的windows环境下安装Python模块

    在安装python环境以及python的一些模块时,可能需要在没有网的windows环境下安装Python模块. python模块下载地址,几乎所有的模块都有:https://www.lfd.uci. ...

  9. windows搭建python开发环境方法_04 Windows下搭建 Python 开发环境 - Python 入门教程

    前面两个小节中我们已经学习了在 MacOS 和 Ubuntu 中安装 Python 的开发环境.当然,作为用户基数最多的 Windows 操作系统,我们当然不会忘记,这节课我们就来学习下如何在 Win ...

最新文章

  1. boost::mpl::min和boost::mpl::max相关的测试程序
  2. 对话Couchbase首席架构师:Couchbase是目前最好的NoSQL数据库平台
  3. 恐龙跳一跳游戏python_python实现“跳跃的恐龙”这款游戏
  4. CodeForces - 1141D Colored Boots(暴力+水题)
  5. 关于make_work_guard猜想
  6. 15. OD-去除程序最后退出时弹出的注册模态对话框,eXeScope、Resource_Hacker工具的学习
  7. 深究Spring中Bean的生命周期
  8. 华为向emui输入鸿蒙,新颜值/新功能/新体验!EMUI 11上手:手机鸿蒙OS的提前预演...
  9. 黑群硬盘休眠问题的一种解决思路(DS916+,DSM 6.1.7)
  10. ubuntu下MySQL无法启动Couldn't find MySQL server (/usr/bin/mysqld_safe)”
  11. [2019.04.16] 由Python写成的自动解压脚本
  12. BSN区块链服务网络介绍
  13. 关于施耐德PLC下载程序错误出现“断言失败:‘Abort=Quit,Retry=Debug,lgnore=Continue’”
  14. 打包项目出错 Your build settings specify a provisioning profile with the UUI
  15. 人人农场 renren 外挂 Java 实现
  16. laravel接合monolog实现日志记录到Elasticsearch实践
  17. linux服务器配置和管理,Linux服务器配置和管理:一般管理
  18. RDO和VB数据库编程
  19. Linux内核笔记--软中断
  20. html5网页播放声音

热门文章

  1. 闭包:什么是闭包、闭包的作用、闭包的解决
  2. 新浪微博mid base62进制转10进制
  3. poi导出兼容xls和xlsx时报错XmlValueDisconnectedException
  4. 荷塘月色的伤感非主流日志推荐:有那么一个人,该忘记了
  5. SpringBoot 将PDF转成图片或Word
  6. 421. Maximum XOR of Two Numbers in an Array
  7. 咸鱼Maya笔记—NURBS边界
  8. 微信公众号实现会员卡领取
  9. 小d课堂mysql_小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-6.Mysql逆向工程效率神器之使用IDE自动生成Java实体类...
  10. DNS篇之DNS服务器搭建