2011-02-15 9 views
6

Necesito obtener la ruta de la biblioteca PyQt en el programa python. Programa se ejecuta como un script desde otra aplicación, por lo tanto miCómo obtener la ruta de acceso de un módulo python (no sys.executable)

sys.executable = 'D:/program files/visum/exe/visum115.exe 

y necesito mi camino real pitón (y la ruta para el módulo de biblioteca PyQt)

Path = C:\Python25\Lib\site-packages\PyQt4\plugins 

im tratando con

os.environ['PYTHONPATH'] 

pero no estoy seguro de si puede ser robusto.

¡Recuerdos!

PS. Necesito que sea capaz de conectar plugins:

qApp.addLibaryPath('C:\Python25\Lib\site-packages\PyQt4\plugins') 
+1

Compruebe aquí tal vez puede ayudar: http://stackoverflow.com/questions/4693608/find-path-of-module-without-importing-in-python/4693681#4693681 – mouad

+0

obtener una ruta de biblioteca estándar, y una lista de sus módulos: http://stackoverflow.com/a/6464112/611007 – n611x007

Respuesta

13

se puede tratar de cargar el módulo y después del registro por su __ archivo __ atributo para obtener la ruta del archivo .pyc.

por ejemplo, así:

import MODULE, os 
path = os.path.dirname(MODULE.__file__) 

Saludos, HTH!

+0

que es lo que necesitaba! ¡Gracias! –

+0

De nada :) – SubniC

4

Lo que estamos buscando es sys.path:

>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python2.7/site-packages/virtualenvwrapper.github-0.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/pycharm-debug.egg', 
'/usr/lib/python2.7/site-packages/Fom-0.9.2-py2.7.egg', 
'/usr/lib/python2.7/site-packages/blinker-1.1-py2.7.egg', 
'/usr/lib/python2.7/site-packages/httplib2-0.6.0-py2.7.egg', 
'/usr/lib/python27.zip', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7/site-packages', 
'/usr/lib/python2.7/site-packages/Numeric', 
'/usr/lib/python2.7/site-packages/PIL', 
'/usr/lib/python2.7/site-packages/gst-0.10', 
'/usr/lib/python2.7/site-packages/gtk-2.0', 
'/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info', 
'/usr/lib/python2.7/site-packages/wx-2.8-gtk2-unicode'] 
+0

pero ¿cómo encontrar el camino de python en esta tupla? –

+0

> en esta tupla - ¡es una lista – warvariuc

Cuestiones relacionadas