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
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

This is the correct path setup:

@echo off
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.

  • Thanx, i ll test when i get home today ;) – U2ros Mar 12 '13 at 15:11
  • Thanks, works perfectly, after i modified your snippet to my locations. Again, thanks – U2ros Mar 14 '13 at 19:24

In the web only your solution works!!!! ;)

On Windows 7 & QGIS standalone (no installer OSGeo4W) my .bat is:


Set PATH=%OSGEO4W_ROOT%\apps\qgis\bin;%PATH%
set QGISHOME=%OSGEO4W_ROOT%\apps\qgis
echo off
call %OSGEO4W_ROOT%\bin\o4w_env.bat
call %OSGEO4W_ROOT%\apps\grass\grass-6.4.2\etc\env.bat
echo off

start "My Quantum GIS App" /B %OSGEO4W_ROOT%\bin\python.exe X:\test.py

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.