当前位置: 首页 > wzjs >正文

涟源市建设局网站注册城乡规划师教材

涟源市建设局网站,注册城乡规划师教材,企业宣传册免费模板网站,网页版百度技术场景: 需分发的Python工具要求终端用户可动态修改执行逻辑将Python环境与指定库(如NumPy/Pandas)嵌入可执行文件实现"一次打包,动态扩展"的轻量化解决方案。 ▌ 架构设计原理 1. 双模运行时识别 # 核心判断逻辑…

技术场景:

需分发的Python工具要求终端用户可动态修改执行逻辑将Python环境与指定库(如NumPy/Pandas)嵌入可执行文件实现"一次打包,动态扩展"的轻量化解决方案。

▌ 架构设计原理

1. 双模运行时识别

# 核心判断逻辑(适配开发模式与编译模式)  
def get_runtime_path():  if getattr(sys, 'frozen', False):  return os.path.dirname(sys.executable)   # 编译模式取执行文件路径  return os.path.dirname(__file__)             # 开发模式取脚本路径  

设计优势:

  • 开发阶段与发布版本使用同一套代码
  • 避免硬编码路径引发的跨平台兼容问题

2. 动态脚本加载机制

def load_script(script_name):  target_path = os.path.join(get_runtime_path(),  script_name)  if os.path.exists(target_path):   with open(target_path, 'r', encoding='utf-8') as f:  exec(f.read(),  globals())  # 在全局命名空间执行脚本  

3. 架构图

在这里插入图片描述

▌ 基础功能实现

1. 编写main.py和Run.py文件(名称随意)

main.py

import os
import sys# === 预先导入之后可能会用到的模块 ===
import numpy
import pandas# 核心判断逻辑(适配开发模式与编译模式)  
def get_runtime_path():  if getattr(sys, 'frozen', False):  return os.path.dirname(sys.executable)   # 编译模式取执行文件路径  return os.path.dirname(__file__)             # 开发模式取脚本路径# 这里一定要定义一个main函数
def main():# 导入一个可以被修改的脚本代码“Run.py”,后续可以通过它指定要被运行的脚本current_path = get_runtime_path()ScriptPath = os.path.join(current_path, "Run.py")if os.path.isfile(ScriptPath):with open(ScriptPath, 'r', encoding='utf-8') as file:exec(file.read(),globals())# 程序入口
if __name__ == "__main__":main()

Run.py

import os
import sys# 核心判断逻辑(适配开发模式与编译模式)  
def get_runtime_path():  if getattr(sys, 'frozen', False):  return os.path.dirname(sys.executable)   # 编译模式取执行文件路径  return os.path.dirname(__file__)             # 开发模式取脚本路径def load_script(script_name):  target_path = os.path.join(get_runtime_path(),  script_name)  if os.path.exists(target_path):   with open(target_path, 'r', encoding='utf-8') as f:  exec(f.read(),  globals())  # 在全局命名空间执行脚本  # def main():script_name = "example_1.py"
load_script(script_name)script_name = "example_2.py"
load_script(script_name)# if __name__ == "__main__":
#     main()

由于实际运行时上方代码Run.py由main.exe调用,将直接和main.exe共用全局命名空间中的os和sys库,因此

2. 编译 main.py

pyinstaller --onedir main.py

若没有安装pyinstaller,请先使用pip安装:

pip install pyinstaller

编译完的文件如下:

your_project_folder/
│
├──── build/ → 没有用,可以删除
├──── dist/ → 打包后的程序文件夹
│        └─── main/
│            ├─── _internal/ → 需要用到的库文件会被放在这里
│            └─── main.exe → 打包后的可执行程序
│
└──── main.spec → 打包配置文件,可以修改它来定制打包过程
_internal/ 和 main.exe → 可以一起拿出来放在其它位置(需放在同一路径下)

_internal/ 和 main.exe需在同一路径下
_internal/中将包含被引用的numpy和pandas库


3. 测试运行效果

运行 main.exe

test_main.bat

.\main.exe
pause

运行 test_main.bat 文件,查看效果:

D:\test>.\main.exe
This script is running as a compiled executable.
This script is running as a compiled executable.
一维数组:
[1 2 3 4 5]
一维数组加10:
[11 12 13 14 15]
一维数组乘2:
[ 2  4  6  8 10]
二维数组:
[[1 2][3 4]]
矩阵乘法结果:
[[ 7 10][15 22]]
原始DataFrame:Name  Age         City
0    Alice   24     New York
1      Bob   27  Los Angeles
2  Charlie   22      Chicago
3    David   32      Houston年龄大于25的行:Name  Age         City
1    Bob   27  Los Angeles
3  David   32      Houston按年龄升序排序后的DataFrame:Name  Age         City
2  Charlie   22      Chicago
0    Alice   24     New York
1      Bob   27  Los Angeles
3    David   32      Houston描述性统计量:Age
count   4.000000
mean   26.250000
std     4.349329
min    22.000000
25%    23.500000
50%    25.500000
75%    28.250000
max    32.000000D:\test>pause
请按任意键继续. . .

▌ 例程(附)

example_1.py

import numpy as np# 创建一个一维数组
arr1 = np.array([1, 2, 3, 4, 5])# 创建一个二维数组(矩阵)
arr2 = np.array([[1, 2], [3, 4]])# 数组加法
arr_sum = arr1 + 10# 数组乘法(元素级)
arr_prod = arr1 * 2# 矩阵乘法
mat_prod = np.dot(arr2, arr2)# 打印结果
print("一维数组:")
print(arr1)
print("一维数组加10:")
print(arr_sum)
print("一维数组乘2:")
print(arr_prod)
print("二维数组:")
print(arr2)
print("矩阵乘法结果:")
print(mat_prod)

运行结果:(example_1.py)

一维数组:
[1 2 3 4 5]
一维数组加10:
[11 12 13 14 15]
一维数组乘2:
[ 2  4  6  8 10]
二维数组:
[[1 2][3 4]]
矩阵乘法结果:
[[ 7 10][15 22]]

example_2.py

import pandas as pd# 创建一个简单的DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [24, 27, 22, 32],'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)# 显示DataFrame
print("原始DataFrame:")
print(df)# 数据筛选:选择年龄大于25的行
filtered_df = df[df['Age'] > 25]
print("\n年龄大于25的行:")
print(filtered_df)# 数据排序:按年龄升序排序
sorted_df = df.sort_values(by='Age')
print("\n按年龄升序排序后的DataFrame:")
print(sorted_df)# 计算描述性统计量
stats = df.describe()
print("\n描述性统计量:")
print(stats)

运行结果:(example_2.py)

原始DataFrame:Name  Age         City
0    Alice   24     New York
1      Bob   27  Los Angeles
2  Charlie   22      Chicago
3    David   32      Houston年龄大于25的行:Name  Age         City
1    Bob   27  Los Angeles
3  David   32      Houston按年龄升序排序后的DataFrame:Name  Age         City
2  Charlie   22      Chicago
0    Alice   24     New York
1      Bob   27  Los Angeles
3    David   32      Houston描述性统计量:Age
count   4.000000
mean   26.250000
std     4.349329
min    22.000000
25%    23.500000
50%    25.500000
75%    28.250000
max    32.000000
http://www.dtcms.com/wzjs/57483.html

相关文章:

  • 莒县网站制作百度贴吧怎么做推广
  • 淄博做网站小程序的公司网络营销推广方案策划
  • 模板网站配置十大品牌营销策划公司
  • 山东金融行业网站开发品牌营销经典案例
  • 中山做网站推广公司提高工作效率8个方法
  • 合肥做网站开发多少钱电商网站怎样优化
  • 果洛营销网站建设服务百度商务合作联系
  • 网站推广项目郑州做网站推广
  • 上海公司注册流程和费用网站seo视频
  • 网站的专题怎么做百度seo收费
  • 苏州网站建设公司电话东莞建设企业网站
  • 男女做那事是什 网站seo整站优化费用
  • 怎么做关于易烊千玺的网站网站查询关键词排名软件
  • 地方门户网站系统有哪些创建网站的公司
  • 市场营销公司网站seo优化培训
  • 东莞网站案例营销网站如何做优化排名
  • 厦门市建设局查询保障摇号网站东莞seo网络推广专
  • 如何设置自己网站的关键词网络推广免费平台
  • 西部数码 空间做2个网站2023引流软件
  • b2c电商平台排名东莞seo优化排名推广
  • 自己搞个网站企业网站分析报告
  • 怎么免费建设金融网站怎么自己创建网址
  • 网站的flash怎么做的郑州seo代理外包公司
  • wordpress 4.9更新最新seo教程
  • 知晓程序网站怎么做短视频营销常用平台有
  • 哪个网站做ppt能赚钱百度推广400客服电话
  • 做网站引流的最佳方法2022百度seo优化工具
  • 网站上怎么做弹幕效果图百度推广有效果吗?
  • 做网站客户最关心哪些问题新媒体营销案例分析
  • 做网站什么最重要珠海网站建设