由于我之前的问题已经结束,我正在努力改进它,让社区了解它可能对广大用户有用。 我找到了一个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模块的常见问题。
答案 0 :(得分:1)
最终我设法拥有了个人shell启动器!诀窍是调查o4w_env.bat
文件,以便了解第二行的“调用”实际上是什么。
所以我尝试并成功了:
将idle.pyw
(或您要使用的IDE复制到Quantum GIS
主文件夹(在我的情况下是C:/Quantum_GIS_Lisboa
)
复制SHELL LAUNCHER(参见第3点),扩展名.bat
位于“\ bin”
运行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>"
希望这可以帮助任何人。 干杯!
答案 1 :(得分:-1)
现在运行该代码。