使用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咨询。
posted @   XYSGIS  阅读(424)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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保姆级教程
点击右上角即可分享
微信分享提示