gis.stackexchange.com/q/268973/115

ТИРОВАТЬ: Я откатил версии PyCharm, и он снова работает. ЯСНО проблема IDE, а не проблема сценария. Версия PyCharm 2017.2.4 - это то, к чему я откатился.

Итак, у меня есть сценарий, который отлично работал для меня до сегодняшнего дня. По какой-то причине скрипт будет работать без ошибок, если я не использую PyCharm (Community Edition 2017.3.3) в режиме отладки. Мне нужно использовать отладчик, поэтому, когда он выдает ошибки без причины и останавливает сценарий, это делает его бессмысленной IDE.

Причина, по которой я знаю, что это проблема PyCharm, заключается в том, что я скопировал весь скрипт в другую IDE (Wing), установил тот же интерпретатор Python и прошел его в режиме отладки, и он работал нормально, без ошибок.

Я провел обширное тестирование ошибок, чтобы убедиться, что их нет в моем скрипте; они не. Сценарий должен работать как написано. Он продолжает говорить, что наборы данных не существуют, или входные объекты для инструментов arcpy (пространственная программа, которая подключается к python через библиотеку под названием «arcpy»), не имеют значений, когда они есть. Это не проблема скрипта, это проблема IDE.

Кто-нибудь сталкивался с этим и знает, как это исправить?

У меня нет никаких конкретных настроек среды, я просто подключил туда интерпретатор Python ArcGIS для проекта, чтобы я мог получить доступ к библиотеке arcpy и все. Следует отметить, что этот интерпретатор является python 2.7, потому что ArcGIS еще не совместим с python 3+. Я сомневаюсь, что это как-то связано с этим, но вы никогда не знаете ...

Это кусок скрипта, вызывающий проблемы (если у вас нет / не знаете, как использовать ArcGIS, не пытайтесь запустить его, он не будет работать для вас). Я хочу отметить, что если я поставлю точку останова наqh_buffer строка будет прервана после попытки запуска этой строки с дугообразным сообщением об ошибке, в котором будут указаны недопустимые входные данные / параметры (они не являются недействительными, написано именно так, как должно быть, и я проверил, что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)

Ваш ответ на вопрос