C#调用python.exe使用arcpy方式
C#开发程序一直以来以调用Desktop的python环境(32位)来做数据处理分析。因此决定换成使用64位python环境。后来发现是由于arcpy模块导致的,去掉这个模块的内容就能运行,import arcpy就运行不起来。既然使用arcpy做数据处理,如果连import arcpy都不行,那还做个屁啊。于是开始寻找程序Debug模式下和Run模式下的区别。程序中使用ProcessStartInfo类启动的python.exe的进程,那问题基本就出自这里了。明显可见两个环境的__COMPAT_LAYER值就是不一样的。查了一下__COMPAT_LAYER是版本兼容相关参数,由于我是32位程序调用64位python.exe,因此怀疑是这个参数导致的问题。RunAsAdmin是以管理员运行,而Installer的解释是安装工具。上面分析出可能是__COMPAT_LAYER值不同才导致的问题,那么就能对症下药了,现在把Run下的值也设置为RunAsAdmin。
用户评论