Несмотря на то, что я предоставил справочную информацию по моей конкретной проблеме, эта проблема действительно связана с вызовом функций, написанных на python3, в скриптах, написанных на python2. Фон только для того, чтобы помочь решить проблему.
Я пишу скрипт-плагин для ArcGIS 10 (картографическое программное обеспечение), который может использовать только Python версии 2.7. Но в сценарии я хочу передать изображение в нейронную сеть, запрограммированную в tenorflow 2.0, для которой требуется python 3.x.
У меня есть рабочий скрипт для ArcGIS, который получает изображение карты в виде пустого массива (python 2.7).
У меня есть рабочий скрипт в Python 3.6, который берет изображение массива, передает его в сеть и выводит прогнозы.
Обзор процесса:
- ArcGIS создает тысячи изображений карты (сложная математика и процесс)
- Подача каждого изображения в нейросеть тензорного потока и запись прогнозов
- ArcGIS принимает все собранные прогнозы как единый массив и выполняет дальнейший анализ и отображение.
Прямо сейчас у меня есть трехэтапный процесс, который включает в себя выход из ArcGIS.
- Запустить скрипт плагина ArcGIS - сохранить список файлов, по одному на каждое изображение (десятки тысяч файлов).
- Отдельный скрипт в python 3.6 (выполняется в IDE) для итерации по файлам, чтения каждого прогноза и сохранения его в другом массиве. сохранить массив на диск
- Запустите другой скрипт плагина ArcGIS, чтобы прочитать полученный файл массива и отправить его обратно в ArcGIS, ArcGIS анализирует прогнозы.
Желаемый рабочий процесс:
Плагин Arcgis создает каждое изображение и напрямую передает его в мою модель тензорного потока и записывает прогнозы в nparray. в конце этого же скрипта плагин может анализировать полученный nparray. Так что, в основном, вырезаем все записи в файловую систему, так как это всего лишь обходной путь для разных версий Python.
[Кроме того, в идеале, файлы нужны только временно в оперативной памяти, но в итоге занимают 6 ГБ дискового пространства, так как мне нужно переключать сценарии]
Проблема:
Я не могу понять, как заставить массив numpy передаваться туда и обратно между скриптом python2 и скриптом python3. когда я пытаюсь импортировать тензор потока в сценарии python2, он не обнаруживается, когда я пытаюсь импортировать API Python ArcGIS в python3, он говорит, что не найден.
Любые предложения приветствуются.