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
转载自:http://blog.csdn.net/BoomingZhenhua/archive/2010/07/09/5722637.aspx
Eclipse中调试Python代码--调试FWTools2.4.7中的gdal_retile.py
最新推荐文章于 2024-03-01 17:40:29 发布