PyCharm调试模式抛出假错误但在不在调试时正常运行

时间:2018-01-23 20:29:25

标签: python debugging pycharm

编辑:我回滚了PyCharm版本,它再次正常运行。清除IDE问题,而不是现在的脚本问题。 PyCharm版本2017.2.4是我回滚的内容。

所以我有一个非常适合我的剧本,直到今天。出于某种原因,只要我在调试模式下不使用PyCharm(Community Edition 2017.3.3),脚本就可以正常运行而没有任何错误。我需要使用调试器,因此当它无缘无故地抛出错误并停止脚本时,它会使它成为一个毫无意义的IDE。

我知道这是一个PyCharm问题的原因是因为我将整个脚本复制到另一个IDE(Wing),设置为相同的python解释器,并在那里以调试模式完成它并且它工作正常,没有错误。

我已经做了大量的错误测试,以确保我的脚本中实际上没有错误;他们不是。脚本应该按照书面形式工作。它一直说数据集不存在或者arcpy工具的输入功能(通过名为“arcpy”的库挂钩到python的空间程序)没有值。这不是脚本问题,而是IDE问题。

有没有人遇到这个并知道如何修复它?

我没有任何特定的环境设置,我只是在那里为项目弹出了一个ArcGIS python解释器,所以我可以访问arcpy库,就是这样。应该注意的是,这个解释器是python 2.7,因为ArcGIS还不兼容python 3+。我怀疑这与它有什么关系,但你永远不知道......

这是导致问题的一大块脚本(如果您没有/知道如何使用ArcGIS,请不要试图运行它,它将无法为您工作)。我想要指出的是,如果我在qh_buffer行放置一个断点,它会在尝试使用arcpy错误消息运行该行之后中断,该消息指出无效的输入/参数(它们不是无效的,它是写的究竟应该如何,我已经检查了qhPolys正在创建和存在)。那么,如果我将断点移动到crop_intersect行并在调试中运行它,它将运行整个代码,包含缓冲区语句,但随后错误输出错误000732“输入功能:数据集#1;#2不存在或不受支持“(它们都存在,因为我之前将它们硬编码到输出目录并且它们被创建得很好)。

import arcpy

arcpy.env.overwriteOutput = True

svyPtFC = r"C:\Users\xxx\GIS_Testing\Crop_Test.shp"

select_query = '"FID" = 9'

qhPolys = arcpy.Select_analysis(svyPtFC, 'in_memory/qhPolys', select_query)
qh_buffer = arcpy.Buffer_analysis(qhPolys, 'in_memory/qh_buffer', '50 
Meters')
cropFID = '"FID" = 1'
cropPoly = arcpy.Select_analysis(svyPtFC, 'in_memory/cropPoly', cropFID)
crop_intersect = arcpy.Intersect_analysis([[cropPoly, 1], [qh_buffer, 2]],
                                      r'C:\Users\xxx\GIS_Testing\crp_int.shp')
feature_count = arcpy.GetCount_management(crop_intersect)
print feature_count

如果我在那附近设置一个断点,它可能会导致缓冲线错误,但是如果我将断点进一步向下移动,那条线就会运行正常并且它会在下一个断开断点...确实解释了为什么它只是点击“运行”而不是执行调试模式。没有断点!

0 个答案:

没有答案
相关问题