Eclipse中調試Python代碼--調試FWTools2.4.7中的gdal_retile.py__Python

來源:互聯網
上載者:User

Eclipse中調試Python代碼

Gdal_retile.py是用於對遙感影像建立金字塔,近期本人想讀懂改程式中的代碼。讀懂代碼的較好方式就是單步調試,但是由於之前沒有學過Python語言,不但對語言不熟悉,對其開發環境也一無所知。沒想到第一次接觸就遇到了難題,搞了將近兩天才把調試環境配置成功。我在解決這個問題的時候也曾在網上搜尋解決辦法,但是幾乎沒有什麼有價值的資訊,因此決定將經驗分享出來供大家參考。

FWTools2.4.7安裝成功後,在開始菜單中運行FWTools Shell會彈出Dos視窗,在其中可以執行gdal_retile命令,該命令其實執行的是gdal_retile.bat,該bat檔案轉調gdal_retile.py。你會發現,如果你不是用FWTools Shell彈出的Dos視窗執行命令,而是單獨開啟Dos視窗,在該視窗中執行gdal_retile.bat會失敗,這是因為FWTools Shell在開啟Dos視窗之前設定6個重要的環境變數,它們分別是:

 

---------

PATH=C:/PROGRA~1/FWTOOL~1.7/bin;C:/PROGRA~1/FWTOOL~1.7/python;

set PYTHONPATH=C:/PROGRA~1/FWTOOL~1.7/pymod

set FWTOOLS_DIR=C:/PROGRA~1/FWTOOL~1.7

set GDAL_DATA=C:/PROGRA~1/FWTOOL~1.7/data

set GDAL_DRIVER_PATH=C:/PROGRA~1/FWTOOL~1.7/gdal_plugins

set GEOTIFF_CSV=C:/PROGRA~1/FWTOOL~1.7/data

set PROJ_LIB=C:/PROGRA~1/FWTOOL~1.7/proj_lib

---------

 

需要注意的是FWTools2.4.7使用Python的安裝位置是“C:/Program Files/FWTools2.4.7/python”,它的版本是2.3.4,也許你的機器上已經有不同的版本的Python解譯器,例如我的機器上,由於安裝了ArcGIS軟體,我的磁碟C:/Python25已經存在一個2.5版本的解譯器。為了能夠調試Python程式,我從網上搜尋相關資訊,不少人建議使用PythonWin,於是我安裝了PythonWin2.5,該程式預設與C:/Python25安裝在一起。

通過PythonWin中的File菜單開啟FWTools2.4.7/bin/gdal_retile.py並單步調試,出現錯誤。錯誤的原因是“import gdal”錯誤,import gdal將FWTools2.4.7/pymod/gdal.py中的191行代碼“import _gdal”,該語句的意圖是載入FWTools2.4.7/pymod/_gdal.dll庫,但是由於PythonWin的環境變數設定,調試器無法找到dll庫所在路徑。我嘗試在PythonWin/Tools/Edit Python Path菜單中更改環境變數,可是嘗試了多種方法最終沒有解決該問題。

接下來,思考再三,分析該錯誤的原因要麼是環境變數設定問題,要麼是兩個不同版本的Python存在,引起衝突。我對作業系統的環境變數做了設定,將上述六個環境變數都添加到系統內容變數中,結果還是無法調試。然後我覺得應該換一個開發環境,該開發環境應該具備兩個條件:1,可以設定Python庫的位置;2,可以設定程式依賴的環境變數。 最後找到了Pydev (http://pydev.org/index.html),下載1.5.8版本(org.python.pydev.feature-1.5.8.2010062823.zip)。這個工具之前我也沒有接觸過,它是Eclipse的外掛程式。下載後,將其加入到Eclipse中(如何添加外掛程式問Google)。

Pydev外掛程式安裝成功後,在Eclipse建立工程時多了一項“Pydev”,選擇建立Pydev Project,彈出嚮導:

 

 

點擊“Click here to configure an interpreter not listed”配置Python解譯器的位置和版本,如下:

 

 

 

 

建立一個Python解譯器,名字為Python2.3.4,然後指定其位置在C:/Program Files/FWTools2.4.7/python,Eclipse自動提示將C:/Program Files/FWTools2.4.7/python/Dlls, lib等添加進去。除了除了這幾個目錄還要添加幾個目錄。點擊“New Folder”分別添加C:/Program Files/FWTools2.4.7/python/bin和C:/Program Files/FWTools2.4.7/python/proj_lib。

配置到這裡,還是不能成功import gdal,還需要配置環境變數。同樣在這個對話方塊中,點擊Environment,如下圖:

 

 

 

點擊“New...”建立環境變數:

 

 

 

Name是 :Path

Value是:C:/PROGRA~1/FWTOOL~1.7/bin;C:/PROGRA~1/FWTOOL~1.7/python;

 

將C:/PROGRA~1/FWTOOL~1.7/bin/gdal_retile.py 拷貝到Eclipse工程的Src目錄,按F11進行調試 OK了。

 

可以為python程式配置啟動參數,滑鼠右鍵點擊gdal_retile.py選擇Debug As菜單中的Debug Configurations彈出:

 

 

 

參數為

-levels 3 -ps 512 512 -co "TILED=YES" -co "BLOCKXSIZE=256" -co "BLOCKYSIZE=256" -co "COMPRESS=JPEG" -co "JPEG_QUALITY=75" -s_srs EPSG:4326 -v -targetDir D:/temp D:/1.tif

     ---調試FWTools2.4.7中的gdal_retile.py

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.