[GIS] Where exactly are qgis.gui and qgis.core located

pyqgispython

I'm trying to create a standalone QGIS app using PyQGIS. I'll be deploying it by copying the install folder of QGIS and source folder of my app, and so for the testing purposes I copied QGIS install folder (1.8.0) to some other computer without QGIS installation to begin with; then I tried to test the qgis.gui and qgis.core imports, but no matter what PYTHONPATH (or PATH) I set, I keep getting ImportError "no module named …".

What's weird is, if I modify qgis.bat to this new location and run it, QGIS opens without a problem and all imports work through console inside QGIS. Then I simply duplicated qgis.bat and removed the last line which runs QGIS then added the line which runs my application instead. For some reason, imports are still unavailable, so I'm wondering where are actual Python binding files for qgis_gui.dll and qgis_core.dll because I can't find them anywhere inside QGIS install directory.

My .bat looks like this:

@echo off
SET OSGEO4W_ROOT=c:\IMS\Qgis
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-6.4.2\etc\env.bat
@echo on
PATH %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\grass\grass-6.4.2\lib;%OSGEO4W_ROOT%\apps\qgis\python\qgis;
SET PYTHONPATH = c:\IMS\QGis\apps\qgis\bin\
python c:\IMS\IMS\ims.py

Best Answer

This is the correct path setup:

@echo off
SET OSGEO4W_ROOT=c:\IMS\Qgis
call "%OSGEO4W_ROOT%"\bin\o4w_env.bat
call "%OSGEO4W_ROOT%"\apps\grass\grass-6.4.2\etc\env.bat

set PYTHONPATH=C:\OSGeo4W\apps\qgis\python
Set PATH=C:\OSGeo4W\apps\qgis\bin;%PATH%
set QGISHOME=C:\OSGeo4W\apps\qgis\

qgis.core and qgis.gui are located in the qgis\python\qgis folder but you only set PYTHONPATH to the qgis\python folder because qgis is a package.