Bắt ArcPy hợp tác với Anaconda?


23

Tôi đang cố gắng làm theo các hướng dẫn từng bước trong câu trả lời cho " cách tách cài đặt Python với ArcGIS " nhưng không thể tìm thấy tệp đường dẫn DTBGGP64.pth, trong C:\Python27\ArcGIS10.2\Lib\site-packages.

Có ai đó đã phải đối mặt với một vấn đề tương tự?

Tôi tự hỏi nếu có một cách giải quyết bằng cách bao gồm một tệp đường dẫn cho Anaconda nơi Arcpy được cài đặt? Tôi đã cố gắng tạo một tệp .pth chứa văn bản sau:

# .pth file for arcpy

C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts

và lưu nó vào C:\Anaconda\Lib\site-packages(nghĩa là, nếu đây thực sự là nơi lưu tất cả các gói) nhưng tôi gặp lỗi sau:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module>
    from arcpy.geoprocessing import gp
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, in <module>
    from _base import *
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 14, in <module>
    import arcgisscripting
ImportError: DLL load failed: %1 is not a valid Win32 application.

Tôi đang chạy conda 3.7-py27 trên nền tảng windows 7 (64 bit). Anaconda được cài đặt trong C:\Anacondavà ArcMap được cài đặt trong C:\ArcGIS\Desktop10.2. Có một giải pháp thay thế nào để khiến Arcpy hợp tác với Anaconda không? Tôi chỉ muốn có thể chạy các kịch bản của mình từ Powershell.


chỉ để chắc chắn - khi bạn gõ 'python' tại dấu nhắc cmd - phiên bản / cài đặt nào nó lặp lại? (tức là arcgis hoặc anaconda?) - rất tiếc chỉ thấy điều này là một chút ngày. thăm dò giải quyết bây giờ.
chất lỏng

Tôi đã nghe từ một nhà phát triển tại Esri UC rằng Anacondas sẽ được tích hợp vào ArcGIS 10.5. Tôi khuyên bạn chỉ nên cài đặt các mô-đun bạn cần nếu không nó có thể trở nên lộn xộn.
dgrubman

Có vẻ như đây ^ là trường hợp từ Yêu cầu hệ thống ArcGIS 10.5
WxCZar

Câu trả lời:


13

Bạn đang sử dụng phiên bản Python 64 bit trong bản cài đặt Anaconda của bạn và Python của ArcMap là 32 bit. Bạn sẽ cần cài đặt một số bản dựng ArcGIS 64 bit (hoặc Công cụ địa lý nền 64 bit hoặc ArcGIS cho máy chủ) và thay vào đó, hoặc cài đặt một ví dụ Anaconda 32 bit thay vào đó và thử lại. Xem trang tải xuống và nhận trình cài đặt 32 bit.


33

Hướng dẫn này chỉ cho bạn cách thiết lập môi trường conda để hoạt động với ArcGIS 10.4 và ArcGIS Pro 1.3.

Quy trình làm việc để thiết lập Anaconda với ArcGIS 10.4

  • Cài đặt Anaconda mà không làm bẩn môi trường Windows (đường dẫn, sổ đăng ký) để phá vỡ ngăn xếp trăn của Esri
  • Định cấu hình Anaconda với các tiện ích bổ sung cụ thể mà bạn muốn và
  • Định cấu hình Python của ArcGIS để nhận biết nội dung Anaconda phù hợp.

1) Cài đặt Anaconda cho tất cả người dùng

  1. Truy cập http://continuum.io/doads
  2. Tải xuống phiên bản 32 bit của Anaconda (Python 2.7)
  3. Trong hộp thoại cài đặt:
    • Chọn cài đặt cho tất cả người dùng
    • Cài đặt vào thư mục theo mặc định (C: \ Anaconda2)
    • QUAN TRỌNG : Để tránh phá vỡ ArcGIS (hoặc phần mềm khác), hãy bỏ chọn các hộp kiểm (a) đặt Anaconda thành Python mặc định và (b) thêm Python của Anaconda vào PATH.
  4. Đi đến Bắt đầu> Tất cả chương trình (ứng dụng)> Anaconda2 (32-bit)> Nhắc Anaconda. Nhấp chuột phải, chạy với tư cách quản trị viên

2) Định cấu hình môi trường Anaconda để sử dụng với ArcGIS

  1. Tìm phiên bản của numpy và matplotlib ArcGIS đang sử dụng.
Mở ArcMap và cửa sổ Python của nó và nhập các lệnh sau:

    • >>> nhập sys, numpy, matplotlib
    • >>> in (sys.version, numpy .__ phiên bản__, matplotlib .__ phiên bản__)
    • ('2.7.10 (mặc định, ngày 23 tháng 5 năm 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]', '1.9.2', '1.4.3')
  1. Tạo môi trường Anaconda tương thích với ArcGIS
    • Truy cập Dấu nhắc lệnh Anaconda (Bắt đầu> Tất cả chương trình (ứng dụng)> Anaconda2 (32-bit), chọn " Dấu nhắc Anaconda "), nhấp chuột phải, Chạy với tư cách Quản trị viên .
    • Loại (tùy thuộc vào phiên bản ArcGIS, tôi đang sử dụng ArcGIS 10.4 làm ví dụ ở đây):
    • "conda tạo -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Nhập y để tiến hành.
    • Lệnh conda của Anaconda sau đó sẽ thiết lập thư mục con môi trường, ví dụ: "C: \ Anaconda2 \ envs \ arc104", cài đặt các gói đã tải xuống vào đó.
  2. Kiểm tra môi trường ảo
    • Tại Dấu nhắc lệnh Anaconda, gõ: kích hoạt arc104
    • Loại: danh sách conda . Bạn có thể xem danh sách các gói được cài đặt.
  3. Thêm gói khác
    • Bạn có thể thêm nhiều gói hơn bằng cách sử dụng cài đặt conda , nhưng hãy đảm bảo rằng bạn chỉ định số phiên bản cho những gói này sẽ không thay đổi phiên bản python hoặc numpy của môi trường (hoặc ArcGIS sẽ không thể sử dụng môi trường đó nữa).
    • Hãy thêm mô-đun Thư viện Phân tích Không gian Python ( pysal ).
    • Nhập lệnh sau tại Dấu nhắc Anaconda : "cài đặt conda -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Định cấu hình ArcGIS để xem Anaconda và ngược lại

  1. Anaconda Python đến ArcPy
    • Sao chép tệp Desktop10.4.pth vào thư mục gói trang web của môi trường Anaconda:
    • Từ: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-gói \ Desktop10.4.pth
    • Tới: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-gói \ Desktop10.4.pth
  2. Arcpy đến Anaconda Python
    • Tạo tệp zconda.pth (đường dẫn) có nội dung "C: \ Anaconda \ envs \ arc104 \ lib \ site-gói" trong đó.
    • Sau đó sao chép zconda.pth sang C: \ Python27 \ ArcGIS10.4 \ Lib \ site-gói
  3. Kiểm tra trong ArcMap
    • Là người dùng thông thường, hãy khởi động ArcMap, mở cửa sổ Python
    • gõ "nhập pysal"
    • gõ "pysal." Một menu bật lên với một danh sách các chức năng được cung cấp pysal là một dấu hiệu khá tốt khi cài đặt thành công.
  4. Thử nghiệm trong PyCharm
    • Bắt đầu PyCharm, trong Tệp \ Cài đặt, chọn Dự án rồi Trình thông dịch dự án
    • Bỏ qua danh sách thả xuống cho Trình thông dịch dự án và nhấp vào nút cog để Thêm cục bộ và trong trình duyệt tệp, chọn C: \ Anaconda2 \ envs \ arc104 \ python.exe
    • Để chạy tập lệnh của bạn, nhấp chuột phải vào tập lệnh trong cửa sổ Dự án và chọn Chạy hoặc Gỡ lỗi
    • Khởi động lại PyCharm cho Bảng điều khiển Python để sử dụng môi trường arc104.

Quy trình thiết lập Anaconda với ArcGIS Pro 1.3

1) Tạo môi trường Anaconda tương thích với ArcGIS Pro

  • Sao chép thư mục arcgispro-py3 từ C: \ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs và dán vào C: \ Anaconda2 \ envs
  • Đổi tên thư mục đã sao chép arcgispro-py3 trong C: \ Anaconda2 \ envs thành arcpro

2) Kiểm tra môi trường ảo

  • Tại Dấu nhắc lệnh Anaconda, gõ: kích hoạt arcpro
  • Loại: danh sách conda . Bạn có thể xem danh sách các gói được cài đặt

3) Thêm gói khác

  • Hãy thêm mô-đun Thư viện Phân tích Không gian Python ( pysal ).
  • Nhập lệnh sau tại Dấu nhắc Anaconda : "cài đặt pysal"

4) Định cấu hình ArcGIS để xem Anaconda và ngược lại

  • Anaconda Python đến ArcPy
    • Chỉnh sửa tệp ArcGISPro.pth (đường dẫn) trong "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-gói".
    • Thay đổi đường dẫn ArcPy tương đối thành C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
    • Thay đổi đường dẫn ArcToolBox tương đối thành C: \ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy đến Anaconda Python
    • Tạo tệp zconda.pth (đường dẫn) có nội dung "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-gói" trong đó.
    • Sau đó Sao chép zconda.pth sang C: \ Chương trình tập tin \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-gói
  • Thử nghiệm trong ArcGIS Pro
    • Bắt đầu ArcGIS Pro, mở cửa sổ Python
    • gõ "nhập pysal"
    • gõ "pysal." Một menu bật lên với một danh sách các chức năng được cung cấp pysal là một dấu hiệu khá tốt khi cài đặt thành công.
  •  Thử nghiệm trong PyCharm
    • Bắt đầu PyCharm, trong Tệp \ Cài đặt, chọn Dự án rồi Trình thông dịch dự án
    • Bỏ qua danh sách thả xuống cho Trình thông dịch dự án và nhấp vào nút cog để Thêm cục bộ và trong trình duyệt tệp, chọn C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Để chạy tập lệnh của bạn, nhấp chuột phải vào tập lệnh trong cửa sổ Dự án và chọn Chạy hoặc Gỡ lỗi
    • Khởi động lại PyCharm cho Bảng điều khiển Python để sử dụng môi trường arcpro.

Tài liệu tham khảo

  1. https://goo.gl/pOyLA9

Tất cả đều hoạt động tuyệt vời, các gói Anaconda nằm trong ArcGIS và ngược lại nhưng tôi có một vấn đề còn lại. Nếu tôi thử và thực hiện nhập Arcpy và sau đó arcpy. Mô tả trên một chiếc featureclass có nguồn gốc RDBMS (Oracle) trong Anaconda thì tôi nhận được IOError: ... không tồn tại. Hoạt động tốt trên một featureclass filegeodatabase nhưng dường như sẽ không kết nối với Oracle (ví dụ: arcpy.Describe (r'C: \ temp \ password_satted_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Phil Penn

7

Để giải quyết vấn đề này, hãy duyệt đến thư mục python27 \ Lib \ site-gói, của tôi được đặt trong "C: \ Python27 \ ArcGIS10.1 \ Lib \ site-gói" và tìm tệp Desktop10.1.pth.

Trên hệ thống của tôi, sự cố đã được giải quyết bằng cách sao chép tệp Desktop10.1.pth vào "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-gói".

Nếu bạn đang chạy Anaconda 64 bit, bạn sẽ gặp một lỗi khác khi bạn cố gắng nhập Arcpy vì ArcGIS chạy 32 bit. Do đó, bạn phải đảm bảo rằng bạn đã cài đặt Anaconda 32 bit chứ không phải 64 bit để mọi thứ khớp với ArcGIS. Khi tệp được sao chép và bạn có Anaconda 32 bit, nhập Arcpy sẽ hoạt động.


3

Nếu bạn đã cài đặt Arc trước Anaconda, IDLE mặc định, Cửa sổ Python (trong Arc) và bảng điều khiển Python sẽ luôn lấy từ các mô-đun được cài đặt Arc của bạn, tức là C:\Python27\ArcGIS <version>\Lib(và / hoặc) Lib\site-packages. Nếu bạn có các gói được cài đặt với Anaconda mà bạn muốn sử dụng với cài đặt Python của Arc, bạn sẽ cần phải ghi các tệp .pth để chia sẻ giữa các cài đặt Python ( đọc nhẹ ).

Ví dụ, tôi muốn sử dụng gói gấu trúc từ công cụ Anaconda của tôi. Tôi đã tạo một tệp văn bản trong thư mục gói trang web của Arc được gọi anaconda.pthvới nội dung C:\Anaconda\Lib\site-packagesđể liên kết cài đặt Arc với gói trang web Anaconda. Bây giờ, tôi có thể import pandasbên trong Python được cài đặt Arc mà không cần nhậpEror. (Nếu bạn gặp rắc rối với numpy, hãy đổi tên numpythư mục được cài đặt Arc thành _numpy).

Trên flipside, sao chép và dán Desktop<version>.pthtệp từ thư mục gói trang web Arc vào Anaconda của bạn (chỉ định vị trí thực tế của gói Arcpy) và tạo một tệp .pth khác trỏ đến thư mục gói trang Arc của bạn trong Anaconda của bạn bạn có thể sử dụng các gói của Arc từ Spyder nếu bạn sử dụng nó.


2

Một người dùng khác đã hỏi một câu hỏi tương tự trên github, có thể bạn quan tâm. Đây là ý chính của những gì một người dùng khuyến nghị để nhập dữ liệu tự động hoàn thành Arcpy cho anaconda:

DamnWidget đã nhận xét vào ngày 26 tháng 2 https://github.com/DamnWidget/anaconda/issues/284

Mở PowerShell hoặc CMD.exe và đi đến bản cài đặt anaconda của bạn trong thư mục Gói trong Văn bản tuyệt vời của bạn 3% APPDATA%. CD vào thư mục anaconda_lib và bắt đầu trình thông dịch Python tương tác trên đường dẫn đó.

Sao chép và dán như sau:

import jedi

print(jedi.Script('import arcpy; arcpy.').completions())

Sau đó (ít nhất là đối với tôi) nó đã trả lại một loạt các thứ trong cửa sổ cmd, và nó dường như đã hoạt động. Tôi mở lại Sublime Text và nó tự động hoàn thành các chức năng phức tạp.

Vấn đề của tôi là mất hơn 5 giây để tải chúng, dường như không bao giờ giữ được arcpy được tải trong bộ nhớ trong hơn một vài giây. Nhưng đó là một vấn đề khác tôi nghĩ ...


1

Bạn chỉ nên cài đặt phiên bản 32 bit của Anaconda.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.