1. 程式人生 > >在ArcGIS Pro 1.3之外執行arcpy獨立指令碼

在ArcGIS Pro 1.3之外執行arcpy獨立指令碼

背景

ArcGIS Pro像ArcMap一樣,其中也嵌入了Python。 不同在於ArcGIS Pro採用了python較新的版本3.4,ArcMap仍然沿用2.x版本。 ArcGIS Pro 1.3版本開始Python環境有點小變化,為了方便包管理esri開始採用Conda。 並且不像開始 ArcGIS Pro 1.1,1.2 版本,需要單獨安裝Python for ArcGIS Pro,在1.3版本python包隨ArcGIS Pro一同自行安裝。

文件的原文摘過來能更好的理解esri採用Conda的意圖:

Python has a rich ecosystem of preexisting packages that can be leveraged within ArcGIS, but managing which packages are installed on a system can be a complex and time-consuming task, especially when working on multiple projects or trying to share code with others.

To leverage this versatility, the Python community has created methods to easily create projects in multiple versions of Python and simplifies the process of installing nearly all publicly available Python packages. Conda is the most popular and widely used Python package manager.

看到這裡,你也也許和我有一樣的疑問,啥是Conda?

這裡 。這頁文件是esri剛更新的內容,需要在英文語言版本文件中才能找到。

執行指令碼

這些改變,對於習慣在 ArcGIS Pro 內部的指令碼命令列中執行指令碼的使用者並沒有多大影響。 但是如果已經習慣了在ArcGIS Pro 之外獨立執行指令碼,那如下的改變要注意下了。

ArcGIS Pro 的Python包不再是ArcMap預設安裝的位置 C:\Python27 ,而是安裝在 ArcGIS Pro的安裝目錄\bin\Python

ArcGIS Pro 採用了的Conda環境為 arcgispro-py3,有幾個方式可以訪問這個環境。

1. 互動式執行python命令

開啟ArcGIS Pro安裝目錄下propy.bat檔案,預設位於:
"C:\Program Files\ArcGIS\Pro\bin\Python\Scripts\propy.bat"

2 執行py檔案

CMD開啟命令列視窗,通過propy檔案執行指令碼,例如預設位置:
"C:\Program Files\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py

備註:MyScript內容就兩行: import arcpy, print("arcpy imported")

3 批處理py檔案

通過 call 函式來呼叫 propy

@echo Run my Python script
call "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py
@echo Finished

例子:

備註: 三個指令碼分別列印 AAA, BBB, CCC。

使用Python IDE

有一個好用IDE是件美好的事情,大家應該都有各自的真愛,我就不做任何推薦啦。 在Pro之外獨立執行指令碼匯入arcpy站點包的時候,只要注意將Python直譯器的路徑指向正確即可。

如果你的機器上既安裝了ArcGIS Desktop,又安裝了ArcGIS Server或者ArcGIS Desktop的後臺64位補丁包,並且又安裝了ArcGIS Pro, 那麼可能在機器上有多個Python環境。

我自己在用 Pycharm ,在需要匯入 ArcGIS Pro 的python站點包時,注意指向: "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe"

注意,在python IDE 中不要將直譯器指向這個 python.exe , ["C:\Program Files\ArcGIS\Pro\bin\Python\python.exe"]

否則你在匯入 arcpy 模組時會遇到找不到模組的錯誤: ImportError: No module named ‘arcpy’

相關推薦

ArcGIS Pro 1.3之外執行arcpy獨立指令碼

背景 ArcGIS Pro像ArcMap一樣,其中也嵌入了Python。 不同在於ArcGIS Pro採用了python較新的版本3.4,ArcMap仍然沿用2.x版本。 ArcGIS Pro 1.3版本開始Python環境有點小變化,為了方便包管理esri開

【2016Esri全球使用者大會主題亮點】ArcGIS Pro 1.3 is Coming !

明星產品ArcGIS Pro即將在7月中旬釋出最新版本1.3,這樣快的版本更新速度讓我們感受到了Esri滿滿的誠意。那麼,問題來了:ArcGIS Pro1.3又有哪些令人興奮的亮點呢?下面我就來為大家一一揭祕。 1. 製圖功能持續增強 Pro的製圖體驗一直是極好的,除了

ArcGIS Pro-使用Core程式集開發獨立的App

介紹 有時候我們並不需要把功能定製到ArcGIS Pro框架上,只需要寫個小的工具處理下資料,處理資料時只需雙擊執行exe就行,簡單方便,那麼我們可以使用arcgis pro的資料庫和圖形操作介面嗎? ArcGIS.Core.dll提供地理資料庫和圖形操作的介面,在呼叫了Host.Ini

TIMESAT3.1(3.2)執行及除錯例項

1.TIMESAT簡介 TIMESAT的名稱來源於英文 Time-series Satellite data Analysis Tool,它是一個用於時間序列衛星遙感資料處理和分析的工具軟體。時間序列植被指數的時域特徵能夠反映出植被的生長變化過程,通過該工具可以實現對時序植

《HttpClient官方文件》1.3 HTTP執行上下文

1.3 HTTP執行上下文 HTTP起初是被設計成一種無狀態的、面向請求和響應的協議。然而實際的應用經常需要在請求-響應切換過程中儲存狀態資訊。為了使應用能夠維持處理狀態,HttpClient允許HTTP請求可以在一個特殊的上下文環境(HttpContext)中執行。如果一個context在連

ArcGIS Pro 簡明教程(1Pro簡介

配置 動畫 name app 產品 版本 鼠標拖動 nal mage ArcGIS Pro 簡明教程(1)Pro簡介 轉載地址:http://www.cnblogs.com/lazygis/p/5870545.html ArcGIS Pro 簡明教程(1)Pro簡

Django 2.1.3 文件-模型層-執行查詢

執行查詢 1.建立物件 2.儲存對物件的修改 2.1 儲存ForeignKey 和 ManyToManyField 欄位 3.檢索物件 3.1 檢索所有物件 3.2 使用過濾器檢索特定物件

池與執行緒池 技術點 目錄 1. 執行緒池作用: 提升效能 1 2. 使用流程 1 3. 執行緒與執行緒池的監控 jvisual 1 4. 執行緒常用方法 2 5. 執行緒池相關概念 2 5.1. 佇列

 池與執行緒池 技術點   目錄 1. 執行緒池作用:  提升效能 1 2. 使用流程 1 3. 執行緒與執行緒池的監控  jvisual 1 4. 執行緒常用方法 2 5. 執行緒池相關概念 2 5.1. 佇列 &n

《Intel組合語言程式設計(第五版)》學習歷程——1.3.7習題(獨立完成)

第一章第三節——資料表示方法習題 書的P16——1.3.7本節習題,由於獨立完成,有錯誤請大家指出,感謝感謝。 下面的計算題都是算完後用計算機驗證的,不然習題就沒意義了。 1、解釋術語LSB:二進位制數最右邊的位,即最低有效位——書P8。 2、解釋術語M

Python 3.7.1 模組 併發執行 底層執行緒API _thread

底層執行緒API 1._thread 函式 exception _thread.error _thread.LockType _thread.start_new_thread(function, args[, kwargs]) _

Atitit 微服務的優點和拆分 目錄 1. 微服務架構五大優勢 崛起勢頭不可擋 4 1 1.1. 1、複雜度可控 6避免“盲人摸象” 7 2 1.2. 2、靈活可擴充套件 7 2 1.3. 3獨立

Atitit 微服務的優點和拆分 目錄 微服務架構五大優勢 崛起勢頭不可擋4 1、複雜度可控6避免“盲人摸象”7 2、靈活可擴充套件7 3、獨立部署7

【NOI OpenJudge】【1.3】程式設計基礎之算術表示式與順序執行

01: A+B問題 #include<iostream> using namespace std; int main(){ int a, b; cin>>a>>b; cout<<a+b<<"\n"; return

Java併發程式設計基礎//程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換開銷比較大,一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒擁有獨立的執行棧和程式計

1.實現多執行緒的兩種方式: (1)繼承Thread類; (2)實現Runnable介面 //程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換開銷比較大,一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒擁有獨立的執行

【演算法】給定一個數組,除了一個數出現1之外,其餘數都出現3次,輸出出現一次的那個數。

給定一個數組,除了一個數出現1次之外,其餘數都出現3次。找出出現一次的數。如:{1, 2, 1, 2, 1, 2, 7},找出7.格式:第一行輸入一個數n,代表陣列的長度,接下來一行輸入陣列A[n],(輸入的陣列必須滿足問題描述的要求),最後輸出只出現一次的數。

SHELL指令碼攻略(學習筆記)--1.3 多命令邏輯執行順序

每條命令後如果不加&的話就是依次一行一行的順序執行,只有前面一行執行完成後再執行下一行,事實上還有很多特殊符號可用來分隔單個的命令:分號(;)、管道(|)、&、邏輯AND (&&),還有邏輯OR (||)。對於每一個讀取的管道,Shell都回

spark2.3.1讀取hbase執行報錯的解決辦法

spark2.3.1讀取hbase執行報錯的解決辦法 1.報錯java.lang.IllegalStateException: unread block data 解決辦法: spark.driver.extraClassPath spark.executor.extraClassPat

1.3 Ruby On Rails執行環境安裝 建立並啟動專案

一. Ruby On Rails環境安裝 1、開啟Ubuntu系統(Windows系統開啟虛擬機器登入到Ubuntu系統;IOS系統在終端開啟rails-va資料夾cd rails-va,輸入vagrant up,再輸入vagrant ssh),更新源列表 vagrant@vag

Android studio 升級3.1.2, 執行之前的專案出現各種錯

Bmob 升級新版的坑。     jniLibs裡的.OS檔案,都放在libs裡(jar包資料夾)在build.gradle ->  Android  中加入:javaCompileOptions { annotationProcessorOptions {

NOI題庫答案(1.3 程式設計基礎之算術表示式與順序執行

01:A+B問題 總時間限制: 1000ms        記憶體限制: 65536kB 描述 在大部分的線上題庫中,都會將A+B問題作為第一題,以幫助新手熟悉平臺的使用方法。 A+B問題的題目描述如下:給定兩個整數A和B,輸出A+B的值。保證A、B及結果均在

黑馬程式設計師 – 學習Java5執行緒併發庫(5) -- 2013.1.3

----------- android培訓、java培訓、java學習型技術部落格、期待與您交流! ------------ 今天學習了鎖,Lock比傳統執行緒模型中的synchronized方式更加面向物件,與生活中的鎖類似。接觸到讀寫鎖,分為讀鎖和寫鎖,多個讀鎖不互