Chạy ArcGIS 10.0 trong Virtualenv


12

Tôi đang làm việc trên gói Python có hỗn hợp các công cụ dòng lệnh và công cụ ArcToolbox. Để phát triển Python, việc sử dụng VirtualEnv thực sự hữu ích, đặc biệt là khi làm việc với các trình cài đặt. Có cách nào để ArcMap hoặc ArcCatalog nhận ra phiên VirtualEnv hiện tại trong Python không, để khi một công cụ tùy chỉnh được thực thi, nó đang sử dụng các gói và đường dẫn VirtualEnv Python thay vì các gói và đường dẫn Python mặc định tại c: \ Python26 \ ArcGIS10 .0?

Câu trả lời:


11

Điều đó không được tích hợp vào ứng dụng, nhưng tôi giả sử việc chạy tệp bó thiết lập virtualenv trong một cmd.exephiên và sau đó chạy arcmap.exe từ cùng một hộp DOS sẽ giúp bạn có được virtualenv. ArcMap và bạn bè sẽ sửa đổi đường dẫn một chút để bao gồm cài đặt arcgisscriptingarcpy.

Chỉnh sửa: bạn sẽ cần gọi một cách rõ ràng tập lệnh activ_this từ bên trong cửa sổ Python trong các ứng dụng máy tính để bàn để làm việc này. Nếu tôi có VirtualEnv, c:\Users\jason\myenvtôi sẽ phát hành execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})từ cửa sổ Python trong ứng dụng máy tính để bàn ArcGIS để cho nó chạy.


Điều đó dường như không hoạt động. Tôi đã tạo một không gian làm việc VirtualEnv, kích hoạt nó, sau đó cài đặt một gói mà tôi muốn kiểm tra bên trong ArcCatalog. Càng xa càng tốt. Nếu tôi mở một vỏ Python bên trong phiên VirtualEnv này và nhập các gói mới được cài đặt - quá trình nhập sẽ hoạt động. Nếu sau đó tôi khởi chạy ArcCatalog và cố gắng gọi một trong các gói này từ tập lệnh hộp công cụ - thì nó không hoạt động. Nếu tôi nhìn vào sys.path từ trình bao Python bên trong ArcCatalog, thì nó đang hiển thị thư mục Python mặc định cho ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
Sage BrushGIS

4
Xem xét việc sử dụng activate_this.pytập lệnh cũng trong cùng thư mục ScScript của VirtualEnv của bạn từ cửa sổ Python trong ArcCatalog và bạn bè. Tôi đã có thể thực thi execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})và khởi động VirtualEnv của mình từ bên trong ArcMap.
Jason Scheirer

1
Tuyệt vời! Điều đó đã lừa
Sage BrushGIS
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.