使用QGIS和环境变量的独立应用程序
我已经尝试过通过IRC来查看人们是否可以帮助我解决这个问题,但是该媒介似乎对于弄清任何答案都有些笨拙,因此我将尝试使用它。 我想使用已经可以使用ArcPy对独立应用程序进行编程的方式,使用PyQGIS对独立应用程序进行编程。 PyQGIS本身很简单。我在使用QGIS控制台编辑器中运行Python脚本时没有遇到困难。但是,为了在独立脚本中使用Python绑定,建议我必须使用批处理脚本更改环境设置(我在家中使用Windows Vista,因此我们正在讨论Windows的批处理脚本)。这最终导致一团糟,因为我不太了解批处理脚本,而且我不喜欢这样的想法,即我正在重置一种环境,该环境必须以某种方式运行我的其他应用程序。 我很难理解为什么创建这些设置的指令如此不必要地复杂,以及为什么它们不等于一行代码说“转到绑定位置,使我想要的库可供该程序使用” )。当然,ArcPy不需要人们去弄乱计算机的环境设置,所以我很难理解PyQGIS的原因,在我看来,人们只会放弃而不是自学Windows批处理脚本语言。 现在,我注意到当我在QGIS的控制台编辑器中运行脚本时,它可以工作。当然,在脚本运行后,它也会使其余QGIS无法使用,因此我必须在此后再次重新启动QGIS,但是该脚本的工作方式与我编程的完全相同。但是,当我在QGIS应用程序之外执行此操作时,事实并非如此。问题似乎不是我未能导入由QGIS应用程序自动导入的某些Python软件包(qgis.core和qgis.utils)-我的独立脚本中包含了这些import语句,以及所有其他软件包都导入了脚本要求。这使我相信,不同之处在于QGIS应用程序正确设置了外部环境变量,但是当我将其作为独立脚本运行时,这些变量没有正确设置。 另外,当我将脚本作为独立脚本运行时,它可以遍历所有代码而不会引发错误。它根本不执行代码命令。当我在控制台编辑器中运行脚本时,它可以正确完成所有操作。当我独立运行它时,它将创建一个窗口,然后立即销毁它,而不会引发任何错误。因此,解释员理解我要脚本执行的所有操作-它只是不会执行。 这是脚本: from PyQt4 import * from PyQt4 import * from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * from qgis.gui import * from qgis.utils import * import Tkinter from Tkinter import * import sys import os qgishome = "c:/OSGeo4W/apps/qgis/" …