在Python中导入PyQGIS模块时出现问题

时间:2013-03-08 15:24:23

标签: python shell batch-file qgis

由于我之前的问题已经结束,我正在努力改进它,让社区了解它可能对广大用户有用。 我找到了一个SHELL LAUNCHER,允许以“传统方式”绕过系统环境设置来集成python和QGIS(即使用PyQGIS)。原始的工作完美(在http://inasafe.linfiniti.com/html/id/developer-docs/platform_windows.html找到它)。我一直在尝试修改它以让任何人使用他自己喜欢的IDE(而不是原始的IDE命令提示符)。因此,我做了我的修改,最终来到这个命令发射器:

@echo off
SET OSGEO4W_ROOT=C:\QUANTU~1
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\Python27\Lib\idlelib\idle.pyw # this is the IDE I wanna use, but You can freely point to whatever You'd like
@echo off
SET GDAL_DRIVER_PATH=%IDLE%\bin\gdalplugins\1.9
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-6.4.2\lib
path %PATH%;"%OSGEO4W_ROOT%\apps\Python27\Scripts\"

set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis

start "Quantum GIS Shell" /B "cmd.exe" %*

无论如何,当我运行它时,它会打开idle.pyw,但我无法导入模块,就像系统变量仍未正确设置一样,尽管它们似乎是通过调查sys.path来实现的。 导入(例如)“qgis.core”模块时得到的错误是:

ImportError: DLL load failed: Impossibile trovare il modulo specificato # (impossible to import the specified module)

我的操作系统是Windows XP sp3,Python是2.7.3,QGIS是Lisboa v.1.8。 我希望有人可以帮助我,这有助于解决导入PyQGIS模块的常见问题。

2 个答案:

答案 0 :(得分:1)

最终我设法拥有了个人shell启动器!诀窍是调查o4w_env.bat文件,以便了解第二行的“调用”实际上是什么。

所以我尝试并成功了:

  1. idle.pyw(或您要使用的IDE复制到Quantum GIS主文件夹(在我的情况下是C:/Quantum_GIS_Lisboa

  2. 复制SHELL LAUNCHER(参见第3点),扩展名.bat位于“\ bin”

  3. 运行SHELL LAUNCHER(简单双击):

    @echo off
    
    SET OSGEO4W_ROOT=C:\QUANTU~1
    
    call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
    
    @echo off
    
    SET GDAL_DRIVER_PATH=%IDLE%\bin\gdalplugins\1.9
    path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin
    path %PATH%;%OSGEO4W_ROOT%\apps\grass\grass-6.4.2\lib
    path %PATH%;"%OSGEO4W_ROOT%\apps\Python27\Scripts\"
    
    set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;
    set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages
    set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
    
    start "Quantum GIS Shell" /B "idle.pyw" %* # This is where you specify the IDE 
    # you want to use, mine is "idle.pyw", but if You copy another one (as in point 1), 
    # you should replace "idle.pyw" with "<YOUR_IDE>"
    
  4. 希望这可以帮助任何人。 干杯!

答案 1 :(得分:-1)

运行Qgis并打开python控制台,键入以下

  1. import sys
  2. sys.path中

    现在复制此路径并在python代码的顶部包含sys路径。

  3. 现在运行该代码。