使用py2exe将第三方库arcpy打包成独立运行的exe(成功运行)
使用py2exe将第三方库arcpy打包成独立运行的exe(成功运行)
一、注意事项
(1)设置电脑的python环境变量;
(2)编写的python脚本必须正常运行(由于使用的python为2.7,因此路径、文件、变量中最好不要出现 汉语)同时利用cmd能正常执行该脚本;
(3)运行电脑安装打包工具py2exe;
(4)打包的exe以管理员运行;
二、例子(合并mdb数据库)
- (1)程序脚本:
# coding=utf-8
import sys
# 非常关键,程序运行成不成功基本上靠它。不同的电脑安装不同自行修改,修改之后再次打包
arcpy_path = [r'C:\SoftWare\ArcGis\ArcGIS10.1\Lib',
r'C:\SoftWare\ArcGis\ArcGIS10.1\Lib\site-packages',
r'C:\SoftWare\ArcGis\Desktop10.1\arcpy',
r'C:\SoftWare\ArcGis\Desktop10.1\bin',
r'C:\SoftWare\ArcGis\Desktop10.1\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
import arcpy
import string
import site
from site import addsitedir
from sys import executable
from os import path
interpreter = executable
sitepkg = path.dirname(interpreter) + "\\site-packages"
print(sitepkg)
site.addsitedir(sitepkg)
try:
workspace = r'C:\Users\Administrator\Desktop\y\33' #sys.argv[1]
outdb1 = r"C:\Users\Administrator\Desktop\y\ee\1.mdb" #sys.argv[2]
arcpy.env.workspace = workspace
files = arcpy.ListFiles("*.*db")
arcpy.env.workspace = outdb1
fcs = arcpy.ListFeatureClasses()
fcs = fcs + arcpy.ListTables()
dss = arcpy.ListDatasets()
for File in files:
print File
for fc in fcs:
arcpy.Append_management(workspace + "\\" + File + "\\" + fc, outdb1 + "\\" + fc)
for ds in dss:
fcs1 = arcpy.ListFeatureClasses(feature_dataset=ds)
for fc1 in fcs1:
print fc1
arcpy.Append_management(workspace + "\\" + File + "\\" + ds + "\\" + fc1, outdb1 + "\\" + ds + "\\"+fc1)
except arcpy.ExecuteError:
print arcpy.GetMessages()
- (2)打包脚本:
# coding=utf-8
from distutils.core import setup
import py2exe
options = {"py2exe": {"excludes": ["arcpy"]}}
setup(console=['pythonGUI.py'], options=options)#console是控制台,windows是窗体
- (3)打包命令:
管理员运行cmd,进入打包脚本的目录(如 cd C:\Users\Administrator\Desktop\ww );
运行命令python setup.py py2exe等待打包结束,生成build、dist两个文件夹;
在dist文件夹下创建site-packages文件夹,拷贝arcpy安装包下的Desktop10.1.pth文件(如:...\Lib\site-packages下)到dist\site-packages文件夹中,并用记事本打开当前dist\site-packages\Desktop10.1.pth在末行添加python脚本的位置(如:C:\SoftWare\ArcGis\ArcGIS10.1\Lib和C:\SoftWare\ArcGis\ArcGIS10.1\Lib\site-packages保存即可)。 - (4) 管理员运行exe。
- (5)运行源代码及安装环境包加QQ:1815222521咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程