Ich versuche, eine Python-Pyramiden-App, die ich schreibe, von einem Server auf einen anderen zu verschieben. Ich habe den Code aus der Quellkontrolle ausgecheckt und ein python setup.py develop
ausgeführt, um die Umgebung vorzubereiten, aber wenn ich versuche, pserve development.ini
auszuführen, erhalte ich den folgenden Traceback:
2013-02-27 20:38:20,269 INFO [pyramid_scss][MainThread] fügt den Asset-Pfad hinzu /home/pgrace/repos/Asterisk-WebApps/Cedar-Root/opt/cedar/cedar/assets/scss
Traceback (most recent call last):
File "/home/pgrace/venvs/pyramid/bin/pserve", line 8, in
load_entry_point('pyramid==1.4', 'console_scripts', 'pserve')()
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/pyramid/scripts/pserve.py", line 50, in main
return command.run()
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/pyramid/scripts/pserve.py", line 304, in run
global_conf=vars)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/pyramid/scripts/pserve.py", line 328, in loadapp
return loadapp(app_spec, name=name, relative_to=relative_to, **kw)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
return context.create()
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 710, in create
return self.object_type.invoke(self)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/paste/deploy/loadwsgi.py", line 146, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/paste/deploy/util.py", line 56, in fix_call
val = callable(*args, **kw)
File "/home/pgrace/repos/Asterisk-WebApps/Cedar-Root/opt/cedar/cedar/__init__.py", line 18, in main
config.include("pyramid_scss")
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/pyramid/config/__init__.py", line 773, in include
c(configurator)
File "/home/pgrace/venvs/pyramid/lib/python2.6/site-packages/pyramid_scss/__init__.py", line 88, in includeme
scss.LOAD_PATHS = ','.join([scss.LOAD_PATHS, ','.join(load_paths)])
AttributeError: 'module' object has no attribute 'LOAD_PATHS'
Jetzt kann ich erkennen, dass das Problem in pyramid_scss liegt, aber soweit ich das beurteilen kann, ist der referenzierte Code in Ordnung, als ob die module
-Klasse die LOAD_PATHS-Direktive nicht enthält. Ich versuche herauszufinden, auf welches Modul der Verweis module
zeigt, damit ich den Code überprüfen kann, ob mir eine Abhängigkeit fehlt oder ähnliches. Hat jemand Ideen, wie ich herausfinden kann, auf welches Modul der Verweis module
zeigt, damit ich diesen Code überprüfen kann?
BEARBEITEN: Der Fehler tritt in der includeme
-Definition auf, die aus dem, was ich gelesen habe, automatisch jedes Mal eingefügt wird, wenn ein auf Pyramide spezifisches Paket instanziert wird... vielleicht? Auf jeden Fall wird gesagt, dass scss.LOAD_PATHS nicht existiert, ja, aber es gibt keine scss-Klasse in den Paketen pyramid_scss
oder pyScss
, was mich dazu veranlasst zu fragen, ob es eine andere Klasse gibt, die spät gebunden wird oder ähnliches.
def includeme(config):
load_paths, static_path = _get_import_paths(config.registry.settings)
scss.LOAD_PATHS = ','.join([scss.LOAD_PATHS, ','.join(load_paths)])
scss.STATIC_ROOT = static_path
config.add_renderer('scss', renderer_factory)
Die Klasse Scss
in pyScss enthält tatsächlich eine LOAD_PATHS-Direktive, aber ich sehe nicht, wo das Objekt scss an eine Scss-Klassendefinition gebunden ist. Ich frage mich, ob etwas im obigen def includeme
fehlt, das Teil der Antwort sein könnte, aber dann stellt sich die Frage -- das hat auf dem anderen Rechner richtig funktioniert, warum bricht es jetzt ab? Es fehlt noch etwas, das ich einfach nicht bemerke.