SP1 для ArcGIS 10.1 має розширення для 64-розрядного Python для фонової геопроцедури - наслідки для іншого використання Python


12

Якщо встановлена 64-розрядна фонова геопроцесора для ArcGIS Desktop 10.1sp1 , як це впливає на конфігурацію Python для загального використання?

Esri випустила SP1 для продукту ArcGIS 10.1, а для компонента Desktop зробила доступним 64-розрядний екземпляр Python 2.7.2, який при встановленні замінює Esri 32-розрядний виклик Python 2.7 на 64-бітні дзвінки для фонової геопроцедури (обробка відправляється сторона активного сеансу графічного інтерфейсу ArcGIS).

Установка необов’язкова - тобто без неї ArcGIS Desktop продовжується лише з 32-бітовим простором пам'яті користувача. З його допомогою в папку програми Esri робиться запис \ bin64, і встановлюються ключі реєстру для 64-бітної обробки на "HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ ArcGIS 10.1 SP1 для геопроцесорної обробки робочого столу (64-бітної)", а потім географічна обробка фону. зроблено в 64-бітному просторі пам'яті.

У 32-розрядному Есрі, а тепер у його 64-бітному Python є повна 2.7.2 установка.

Під час географічної обробки реєстру Esri, файли шляху та конфігурації дбають про виклик 64-бітних виконуваних файлів Python. У той час як використання 32-бітного Python зберігається в сесії ArcGIS Desktop, де це необхідно.

Отже, що залишається кожному користувачеві - це вирішити, чи інтегрувати встановлений 64-бітний Python 2.7.2 в свої обчислювальні потреби за межами ArcGIS. І як найкраще це зробити, коли і 32, і 64-бітні версії Python є резидентом у системі?

Запитав ще один спосіб - Esri піклується про інтеграцію 64-розрядного Python у свій робочий стіл ArcGIS, тож якими способами буде працювати його конфігурація для решти випадків використання поза ArcGIS?


Цікаво, ви використовували Process Monitor чи якийсь подібний для контролю за встановленням цього пакету? Думав зробити це сам.
blah238

ні, щойно переглянули зміни у файловій системі та реєстрі
V Stuart Foote

3
Я зробив швидкий тест на продуктивність 64-бітового фонового геопроцесору - і не впевнений, що лише незначне (10%) покращення - це те, що слід було очікувати.
PolyGeo

4
@Arabella - Я б не очікував, що заміна на 32 біти зробить щось швидше, і пов'язане з покращенням на 10% не здається статистично значущим. Основна відмінність полягає в тому, що 64-бітна версія дозволить геопроцесору використовувати більше 4 ГБ оперативної пам’яті. Все інше буде дотичним.
GIS-Jonathan

2
@PolyGeo - По суті, різниця між 32-бітною та 64-бітовою полягає в тому, що 32-бітні програми не можуть використовувати більше 4 Гб оперативної пам’яті (вони просто не можуть вирішити це - насправді швидше 2 Гб або 3 Гб в Windows залежно від прапорів та інших матеріалів). У будь-якому випадку, щоб по-справжньому побачити перевагу 32-бітного проти 64-бітного, вам знадобиться провести тест, який би використовував більше ~ 4 ГБ оперативної пам’яті. Звичайно, можуть бути оптимізовані ESRI між версіями, але сам 32/64-бітовий вік має справу лише з використанням оперативної пам’яті на своєму базовому рівні.
GIS-Jonathan

Відповіді:


1

Отже, що залишається кожному користувачеві - це вирішити, чи інтегрувати встановлений 64-бітний Python 2.7.2 в свої обчислювальні потреби за межами ArcGIS. І як найкраще це зробити, коли і 32, і 64-бітні версії Python є резидентом у системі?

Як я зрозумів, ви запитуєте, як ми можемо розрізнити різні версії python та використовувати його відповідно до наших потреб.

Найпростіший спосіб - точно вказати інтерпретатора, який ви будете використовувати для запуску сценарію. Більш детальну інформацію можна знайти в цьому SO q / a.


В певному сенсі. Але мені більше цікаво робити це програмно під час створення сценаріїв. Як перемикати PYTHONHOME та PYTHONPATH, а потім маніпулювати ними за допомогою викликів sys.path.append () або site.addsitedir () для перенастроювання системи для використання або 32-бітного, або 64-бітного Python. Пропозиція в SO q / a просто виклику однієї або іншої версії Python є начебто грубою. Викликом може стати гнучко використовувати модуль сайту та надійно працювати в IDE. Окрім простого маніпулювання маршрутом та пакетом сайтів, можливо мати декілька конфігурацій Python з virtualenv 32-бітного та 64-бітного середовищ.
V Stuart Foote

У своєму скрипті ви можете спробувати викликати виконання іншого сценарію python, викликавши його за допомогою потрібного інтерпретатора (x32 або x64) з командного рядка, наприклад, використовуючи модуль підпроцесору .
Олексій Марков

0

Для мене це те, що потрібно було ... і я все ще не впевнений, що все працює "належним чином". Після того, як я встановив 64-бітові інструменти для обробки географічної обробки та змінив свій PYTHONPATH для їх використання (наприклад, python за замовчуванням), схоже, це порушило все, ніж ArcMap (наприклад, 32-бітний консольний пітон). Тому я придумав наступну роботу. YMMV

1) Завантажте та запустіть 64-бітний фоновий інструмент для геообробки: на щастя, я його знайшов один раз! Я не можу знову знайти посилання ...

2) Додайте до системи PYTHONPATH (якщо ви використовуєте 64 біт за замовчуванням); C: \ Python27 \ ArcGISx6410.1 \ DLL; C: \ Python27 \ ArcGISx6410.1 \ lib; C: \ Python27 \ ArcGISx6410 .1 \ lib \ plat-win; C: \ Python27 \ ArcGISx6410.1 \ lib \ lib-tk; C: \ Python27 \ ArcGISx6410.1; C: \ Програмні файли (x86) \ ArcGIS \ Desktop10.1 \ bin64; C: \ Файли програми (x86) \ ArcGIS \ Desktop10.1 \ arcpy; C: \ Програмні файли (x86) \ ArcGIS \ Desktop10.1 \ ArcToolbox \ Scripts

3) Створіть сценарій запуску для Arcmap Python, щоб він не плутався з 64-бітовим імпортом з PYTHONPATH

import sys
if sys.executable in ['C:\\Python27\\ArcGIS10.1\\python.exe', 'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin\\ArcMap.exe']:
    print('Resetting Path')
    sys.path = [
        #python32 for ESRI
        'C:\\windows\\system32\\python27.zip',
        'C:\\Python27\\ArcGIS10.1\\DLLs',
        'C:\\Python27\\ArcGIS10.1\\lib',
        'C:\\Python27\\ArcGIS10.1\\lib\\plat-win',
        'C:\\Python27\\ArcGIS10.1\\lib\\lib-tk',
        'C:\\Python27\\ArcGIS10.1',
        'C:\\Python27\\ArcGIS10.1\\lib\\site-packages',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\arcpy',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\ArcToolbox\\Scripts',
        #defaults
        'C:\\Python27\\Lib\\',
        'C:\\Python27\\Lib\\site-packages',
        'C:\\pythonnet'
        ]

import arcpy 
from arcpy import env

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.