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

之前觉得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 已经存在环境,如果您希望重新安装或修复环境,请删除该文件夹并重新执行本文件
    pause
    exit
)

if exist "D:\Program Files\WinRAR\winrar.exe" (
    set localwinrar=D:\Program Files\WinRAR\winrar.exe
    goto compressFileLine
) else (
    echo 默认路径下没有winrar文件...
    echo 请输入您电脑上的winrar可执行文件路径和名字
    echo (如 C:\Program Files\WinRAR\winrar.exe)
    set /p localwinrar=(如果没有winrar按回车手动解压):
)
echo\

if "%localwinrar%" == "" (
    echo 请手动解压至%head%\venv\python该路径下后
    pause
    goto bulidPythonBaseLine
)

:compressFileLine
echo\
echo 正在解压缩所需的文件...
if exist %head%\pkg\python-3.9.13-embed-amd64.zip (
    md %head%\venv
    md %head%\venv\python
    
    rem 测试代码,后续需要继续改进
    "%localwinrar%" e -or "%head%\pkg\python-3.9.13-embed-amd64.zip" "%head%\venv\python"
) else (
    echo 关键文件丢失,安装失败!!!
    pause
    exit
)
echo\

3. 添加python索引包路径

python索引包路径是由python*._pth文件决定的,为了支持第三方库索引和自己编写代码的索引。我们需要编写一个python脚本修改这个python*._pth文件。
python脚本update-pth.py

import sys

with 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路径
    pause
    exit
)

cd %head%\venv\python
set pythonenv=%head%\venv\python

rem 执行一条命令,将命令结果赋值给pythonVersion
rem for /f "delims=" %%t in ('命令字符串') do set str=%%t

for /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.6

setLocal EnableDelayedExpansion
if not "x!pythonVersion:%pyv310%=!"=="x%pythonVersion%" (
    echo 310
) else if not "x!pythonVersion:%pyv39%=!"=="x%pythonVersion%" (
    echo 当前索引环境为Python3.9

    rem 不知道为啥这里有bug,有的时候必须要先开一下再关掉,否则没法执行
    rem @echo on
    rem @echo off
    set fileName=python39._pth
    echo 修改索引文件%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 不支持的版本!!!
    pause
    exit
)
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 off

echo\
echo XXX软件 -- 作者:XXX
echo\

echo ----------------------------------------
echo 嵌入式python环境安装中......
echo 【1】本地环境中需要先安装好WinRAR环境
echo ----------------------------------------
set head=%cd%

echo\
echo 环境检查中......
if exist %head%\venv (
	echo 已经存在环境,如果您希望重新安装或修复环境,请删除该文件夹并重新执行本文件
    pause
    exit
)

if exist "D:\Program Files\WinRAR\winrar.exe" (
    set localwinrar=D:\Program Files\WinRAR\winrar.exe
    goto compressFileLine
) else (
    echo 默认路径下没有winrar文件...
    echo 请输入您电脑上的winrar可执行文件路径和名字
    echo (如 C:\Program Files\WinRAR\winrar.exe)
    set /p localwinrar=(如果没有winrar按回车手动解压):
)
echo\

if "%localwinrar%" == "" (
    echo 请手动解压至%head%\venv\python该路径下后
    pause
    goto bulidPythonBaseLine
)

:compressFileLine
echo\
echo 正在解压缩所需的文件...
if exist %head%\pkg\python-3.9.13-embed-amd64.zip (
    md %head%\venv
    md %head%\venv\python
    
    rem 测试代码,后续需要继续改进
    "%localwinrar%" e -or "%head%\pkg\python-3.9.13-embed-amd64.zip" "%head%\venv\python"
) else (
    echo 关键文件丢失,安装失败!!!
    pause
    exit
)
echo\

:bulidPythonBaseLine
echo\
echo 正在构建python包索引环境...

if exist %head%\venv\python (
    echo\
) else (
    echo 不存在有效的python路径
    pause
    exit
)

cd %head%\venv\python
set pythonenv=%head%\venv\python

rem 执行一条命令,将命令结果赋值给pythonVersion
rem for /f "delims=" %%t in ('命令字符串') do set str=%%t

for /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.6

setLocal EnableDelayedExpansion
if not "x!pythonVersion:%pyv310%=!"=="x%pythonVersion%" (
    echo 310
) else if not "x!pythonVersion:%pyv39%=!"=="x%pythonVersion%" (
    echo 当前索引环境为Python3.9

    rem 不知道为啥这里有bug,有的时候必须要先开一下再关掉,否则没法执行
    rem @echo on
    rem @echo off
    set fileName=python39._pth
    echo 修改索引文件%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 不支持的版本!!!
    pause
    exit
)
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
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要安装 Python 嵌入版,您需要先下载并安装 Python 的源代码。 您可以从 Python 官网下载源代码,也可以使用以下命令在命令行中下载: wget https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz 然后,解压下载的压缩包: tar xzf Python-3.9.3.tgz 进入解压出的目录,执行以下命令进行安装: ./configure --enable-embed make make install 安装完成后,您就可以使用 Python 嵌入版了。 注意:上述命令假设您正在使用 Linux 系统。如果您使用的是其他系统,请参考 Python 官网的安装说明。 ### 回答2: 安装Python嵌入版需要按照以下步骤进行操作: 1. 首先,打开Python官方网站(https://www.python.org/)并导航至下载页面。选择适合您操作系统的版本,通常会有两个选项:32位和64位。 2. 下载适合操作系统的Python嵌入版安装程序。确保选择与您的操作系统版本和架构(32位/64位)匹配的程序。 3. 下载完成后,双击安装程序运行。一般情况下,安装程序会提供一条路径供您选择安装Python。 4. 在安装程序中选择自定义安装选项并确认安装路径。您可以选择将Python安装到默认位置,或将其安装到自定义位置。 5. 点击“下一步”继续安装过程,直到完成安装。 6. 打开命令行终端。在Windows系统中,按下Win+R键,输入“cmd”,然后按下回车键。在Linux和macOS系统中,打开终端应用程序。 7. 在命令行中输入“python”或“python3”(取决于您系统中是否安装了Python 2.x版本)。如果成功显示Python版本信息,则表示安装成功。 8. 现在,您已成功安装Python嵌入版。可以开始编写和运行Python代码。 值得注意的是,Python嵌入版主要用于嵌入其他应用程序或设备中。安装后,您可以通过引入Python解释器来在其他应用程序或设备中嵌入并运行Python代码。 ### 回答3: Python嵌入版是一种轻量级的Python解释器,适用于嵌入系统和资源有限的设备。下面是安装Python嵌入版的步骤: 1. 访问Python官方网站(www.python.org),点击首页上方的“Downloads”按钮,进入下载页面。 2. 在下载页面上,找到并点击“Python Releases for Embedded Systems”链接,进入Python嵌入版下载页面。 3. 在下载页面上,会列出不同版本的Python嵌入版可用下载链接。选择适合您设备的版本,点击下载链接开始下载。 4. 下载完成后,将文件解压缩到您选择的目录。解压后的文件夹中将包含一个名为“python”的文件夹,其中包含Python嵌入版的所有文件。 5. 打开命令行窗口,并导航到解压缩后的Python嵌入版文件夹的“python”子文件夹中。 6. 在命令行窗口中,输入以下命令以安装Python嵌入版: ``` ./configure make make install ``` 请注意,您可能需要使用适当的权限和路径设置来成功执行这些命令。 7. 安装完成后,您可以在命令行窗口中输入“python”命令来启动Python嵌入版解释器。 通过按照以上步骤,您可以顺利地安装Python嵌入版。请注意,安装过程可能因操作系统和设备的不同而有所不同,所以请根据具体情况做适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值