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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm2021.5 激活码获取的方式及使用(最新序列号破解)

    Pycharm2021.5 激活码获取的方式及使用(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    74
  • 数组截取数据slice()函数「建议收藏」

    数组截取数据slice()函数「建议收藏」JavaScriptslice()方法定义和用法slice()方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)参数描述start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。end 可选。 必需。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所

    2022年6月2日
    33
  • [关系图谱] 一.Gephi通过共现矩阵构建知网作者关系图谱

    [关系图谱] 一.Gephi通过共现矩阵构建知网作者关系图谱作者最近研究人物关系图谱,准备发表相关的文章,原本是用PythonNetworkx库绘制,但效果不太理想;故改为Gephi软件,发现其非常好看,特分享几篇文章供大家交流学习,希望对您有所帮助,尤其是引文分析、社交网络、主题分布等方向的同学。后续的文章将尽可能的使用Markdown语法撰写了。参考文章:【python数据挖掘课程】十七.社交网络Networkx库分析人物关系(初识篇)…

    2022年6月26日
    49
  • 计算机入门基础知识

    计算机入门基础知识好久以前帮学弟学妹们总结的计算机入门基础资料,我觉得算是很好的科普入门资料了。毕竟是我辛苦一字一字写出来的。。。目录1.1.1计算机的发展史1946年ENIAC在宾夕法尼亚大学被制作,数字积分

    2022年8月4日
    8
  • 费马小定理(易懂)_四年rain的博客_什么易懂

    费马小定理(易懂)_四年rain的博客_什么易懂费马小定理:内容:若存在整数a,p且gcd(a,p)=1,即二者互为质数,则有a^(p-1)≡1(modp)。(这里的≡指的是恒等于,a^(p-1)≡1(modp)是指a的p-1次幂取模与1取模恒等)(不理解的话请留言)证明:这里证明较为复杂需要先引出两个定理:引理一:若a,b,c为任意3个整数,m为正整数,且(m,c)=1,则当a·c≡b·c(modm)时,有…

    2025年8月24日
    3
  • Linux文件操作高频使用命令

    Linux文件操作高频使用命令文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5.重命名操作:6.解压压缩操作0.新建操作:mkdirabc#新建一个文件夹touchabc.sh#新建一个文件1.查看操作查看目录:ll#显示目录文件详细信息查看文件内容:cat|head|tail命令catabc.txt#查看abc的内容head-5abc.txt#…

    2022年5月1日
    55

发表回复

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

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