pypy 打包_手机按键精灵脚本编写

pypy 打包_手机按键精灵脚本编写我们可以在ArcGIS之外调用arcpy站点包运行python独立脚本,从而批量化任务提高工作效率。如果可以把做好的脚本打包成exe是不是就更方便了呢?想想一键式处理也挺开心的。Python打包的问题最早是在ArcGIS知乎中看到的,有人提问为何打包失败,我还有幸被邀请回答,虽然在这一块我也是小白一枚。后来,得空时也搜了下相关的资源,虽然大部分人持悲观态度说arcpy不支持打包,但刚好有个帖

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

我们可以在ArcGIS之外调用arcpy站点包运行python独立脚本,从而批量化任务提高工作效率。 如果可以把做好的脚本打包成exe是不是就更方便了呢?想想一键式处理也挺开心的。

Python打包的问题最早是在 ArcGIS知乎 中看到的,有人提问为何打包失败,我还有幸被邀请回答,虽然在这一块我也是小白一枚。 后来,得空时也搜了下相关的资源,虽然大部分人持悲观态度说arcpy不支持打包,但刚好有个帖子说可以实现,并且宣称 “It can be done easily!”,那我就动手试试吧。

Step1 下载安装Py2exe

Py2exe是一个Python工具发布扩展包,可以用来将Python脚本转化为Windows的可执行程序,详情看 官网 py2exe.org

下载Py2exe安装程序,下载地址戳 这里

ArcGIS Desktop使用的Python 2.7.x版本,可以对应下载安装 py2exe-0.6.9.win32-py2.7.exe 这个32位的版本;如果你的机器上安装 ArcGIS Desktop 64-bit Background Geoprocessing 补丁或者安装了 ArcGIS Server产品,也可以下载安装 py2exe-0.6.9.win64-py2.7.amd64.exe。 在这篇博客中,我就以 64位的包为例来说明打包的过程。

Step2 编写脚本文件准备打包

打包时需要有至少两个脚本文件,一个是 setup_py2exe.py, 一个是执行实际任务的 HelloPy2exe.py 脚本文件。

看第一个脚本 setup_py2exe.py,包含如下两行:

为了打包时包含arcpy的资源,不要忘记如下options。

options = {
  
  "py2exe": {
  
  "excludes": ["arcpy"]}}  
setup(console=['HelloPy2exe.py'], options=options) 

来看第二个脚本 HelloPy2exe.py:

path.dirname(interpreter) 可以得到Python解释器(python.exe)的路径,并向 sys.path 添加site-packages目录。

from site import addsitedir  
from sys import executable  
from os import path  
interpreter = executable  
sitepkg = path.dirname(interpreter) + "\\site-packages" 
print(sitepkg) 
addsitedir(sitepkg)

def main():
    # 这里编写实际需要执行的任务 

if __name__ == "__main__":
    print('Start Processing ...')
    main()
    raw_input("Enter enter key to exit...")

Step3 执行打包

为了简化打包过程,可以事先做个bat文件,放在与上述连个py文件相同的目录:

python setup_py2exe.py.py py2exe
pause

如果提示python不是有效的应用程序,那么python可以使用python.exe的绝对路径(如:C:\Python27\ArcGISx6410.4\python.exe),或者在 windows的环境变量path中添加python.exe所在的路径。

OK, 执行bat文件打包吧。

pypy 打包_手机按键精灵脚本编写

Step4 添加PTH文件

为了使得exe程序可以使用arcpy的资源,需要在发布后的dist目录中增加 site-packages 文件夹,并增加 *.pth 文件,...\dist\site-packages\Desktop10.4_64bit.pth

以64位为例,文件中需要包含如下路径(我的ArcGIS Desktop是默认路径安装的,你要看好自己路径哦):

C:\Program Files (x86)\ArcGIS\Desktop10.4\bin64
C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcPy
C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcToolBox\Scripts
C:\Python27\ArcGISx6410.4\Lib
C:\Python27\ArcGISx6410.4\Lib\site-packages

PS: 开头提到的帖子中,没有提到要增加 C:\Python27\ArcGISx6410.4\Lib 和 C:\Python27\ArcGISx6410.4\Lib\site-packages 这两个路径,我在执行exe时屡屡失败,不得其解。 快要放弃的时候,经过和同事讨论和测试,发现加上这两个路径,找不到 Numpy、Numbers等等包的错误就解决了,开心!

最后,执行exe即可,这个示例中仅对两个数据进行投影变换,后面可以做些更复杂的工作。

pypy 打包_手机按键精灵脚本编写

后续思考

arcpy并不是一个免费的站点包,arcpy作为ArcGIS产品的一部分,完全脱离ArcGIS产品是不行的! Import arcpy内部其实会默默地检测产品许可的。 如果你没有产品许可,可能会遇到 “RuntimeError:NotInitialized” 这样的初始化失败的错误。

就现在的测试结果而言,我打包好的exe,放到其他安装有ArcGIS Desktop(64位python需要安装ArcGIS Desktop 64-bit Background Geoprocessing 补丁),ArcGIS Server的机器上都是可以正常运行的。

后面我会再做一些更复杂的测试,有时间的话再放上来。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195319.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三维浮雕软件 linux,做3D浮雕圆雕模型用哪个软件好?3Dcoat这款软件是不错的选择。…「建议收藏」

    三维浮雕软件 linux,做3D浮雕圆雕模型用哪个软件好?3Dcoat这款软件是不错的选择。…「建议收藏」#以下是我整理了这款软件的几个优点:优点1,先进的智能转化功能,可以把彩色的平面图片生成3D浮雕模型图,也可以把灰度图生成3D浮雕图,例如在木雕家具效果图设计行业,3DCAOT制作的家具设计贴浮雕效果图优点2,它有先进的局部精细化功能,特别是用于表面精细的浮雕类工艺品设计,可以在产品的表面制作各种效果的浮雕效果。优点3,用于3D扫描抄数的后期处理,修图,对于扫描文件的表面处理,精修等。优点4,指定…

    2025年9月14日
    7
  • 扫码登录的原理和实现方法_扫码支付的原理

    扫码登录的原理和实现方法_扫码支付的原理1概述在日常Web端产品的使用中,一般都会支持扫码登录,这种方式操作简单,相对传统的手机号登录等方式速度更快、安全性更高,还可以增加自家产品的粘合度。2登录原理扫码登录本质是解决将APP端的用户登录信息(通常是Token)通过扫码的形式安全稳定地同步给Web端。1)用户打开Web端网页,进入扫码登录的界面;2)从Web端服务器获取二维码的图并获取其状态;3)Web端服务器在生成二维码时,会生成一个uuid和二维码进行关联,并将uuid存入db记录中;4)

    2025年8月6日
    5
  • EVE模拟器使用说明

    EVE模拟器使用说明本着分享和共同学习的态度,希望能给有需要的人带来帮助。 转载于:https://blog.51cto.com/dashu666/1971728

    2022年6月5日
    53
  • java观看视频次数_java数字转换视频播放次数等

    java观看视频次数_java数字转换视频播放次数等1.1万、9999.9万、1.1亿、999亿+*播放量的数字显示规则1-9999,按照实际数字显示10000-9999999,按照1万、1.1万、9999.9万100000000-99900000000,按照1亿、1.1亿、999亿>99900000000,统一显示为999亿+所有数字显示均保留到小数点后一位即可“`java/***视频观看次数、评论数**@paramtimes*@…

    2022年7月8日
    29
  • matlab 画折线图并美化

    matlab 画折线图并美化使用函数:plot(绘图);set(设置坐标属性);print(输出图片)代码如下:X=1:9;Y=10:10:90;f2=figure(2);set(gcf,’unit’,’centimeters’,’position’,[0,0,8,6])plot(X,Y,’-ok’,’LineWidth’,1,’MarkerSize’,5,’MarkerFaceColor’,’k’)set(gca,’FontName’,’TimesNewRoman’,’FontSize’

    2022年6月7日
    207
  • 前端代码自动生成工具_车辆识别代码生成器

    前端代码自动生成工具_车辆识别代码生成器场景1.CodeFun是什么CodeFun是一款UI设计稿智能生成源代码的工具,支持微信小程序端、移动端H5和混合APP,上传Sketch、PSD等形式的设计稿,通过智能化技术一键生成可维护的前端代码.2.学习成本高吗?对于前端工程师来说,几乎没有学习成本。对于用惯了蓝湖/摹客的前端工程师来说,CodeFun使用流程与前者几乎一致:设计师上传完稿件后,工程师打开界面,选择任意需要的UI区域拷贝走想要的代码即可,只是从原来看标注变成了直接拷贝代码。对于设计师来说,完全不需要遵循某些设计规范

    2022年4月19日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号