[pyar] Odio el sys.path

Manuel Kaufmann humitos en gmail.com
Vie Mar 18 13:24:55 ART 2011


¡Porque no lo entiendo!

Hola lista, ¿cómo están? Estoy haciendo un sitio web con Google App
Engine[0] y el framework TipFy[1].

Éste framework hace un poco de "magia" con el sys.path para que se
carguen las librerías que nosotros mismos "instalamos" bajo el
directorio "/lib" y las que ya trae en el directorio "/distlib":

---- main.py ----

import sys

if 'lib' not in sys.path:
    # Add /lib as primary libraries directory, with fallback to /distlib
    # and optionally to distlib loaded using zipimport.
    sys.path[0:0] = ['lib', 'distlib', 'distlib.zip']

------ -------

La estructura de directorios es así:

busstopped-gae/
├── apps
│   ├── busstopped
│   │   ├── filters.py
│   │   ├── filters.py~
│   │   ├── filters.pyc
│   │   ├── forms.py
│   │   ├── forms.py~
│   │   ├── forms.pyc
│   │   ├── handlers.py
│   │   ├── handlers.py~
│   │   ├── handlers.pyc
│   │   ├── __init__.py
│   │   ├── __init__.py~
│   │   ├── __init__.pyc
│   │   ├── models.py
│   │   ├── models.py~
│   │   ├── models.pyc
│   │   ├── urls.py
│   │   ├── urls.py~
│   │   ├── urls.pyc
│   │   ├── utils.py
│   │   ├── utils.py~
│   │   └── utils.pyc
│   ├── hello_world
│   │   ├── handlers.py
│   │   ├── handlers.pyc
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── urls.py
│   │   └── urls.pyc
│   ├── __init__.py
│   └── __init__.pyc
├── app.yaml
├── config.py
├── config.pyc
├── cron
├── cron.yaml
├── distlib
├── gaeunit.py~
├── index.yaml
├── lib
├── main.py
├── main.pyc
├── settings.py
├── settings.pyc
├── static
├── templates
├── test
├── urls.py
└── urls.pyc

Entonces, tengo esto en los archivos:

---- busstopped-gae/apps/busstopped/handlers.py ----

from apps.busstopped.models import BusStop, News, BusDirection, BusPath
from apps.busstopped.forms import ViewBusStopLinesForm
from apps.busstopped.utils import get_weekday_display, now_time

[.....]

---- busstopped-gae/apps/busstopped/models.py ----

from utils import get_weekday_display, now_time

[.....]

---- busstopped-gae/apps/busstopped/utils.py ----

from apps.busstopped.models import Holiday

[.....]


Y eso me está dando este error: http://pastebin.com/kEjg84h9

File "/home/humitos/busstopped/busstopped/busstopped-gae/apps/busstopped/utils.py",
line 4, in <module>
    from apps.busstopped.models import Holiday

ImportError: cannot import name Holiday

¿Qué corno estoy haciendo mal?

Muchas gracias,


[0] http://code.google.com/intl/es/appengine/docs/
[1] http://www.tipfy.org/

-- 
Kaufmann Manuel
Blog: http://humitos.wordpress.com/
PyAr: http://www.python.com.ar/


More information about the pyar mailing list