Проблема с настройками CherryPy tools.staticdir.root - PullRequest
2 голосов
/ 02 июня 2010

Как сделать мои корневые каталоги статических файлов относительно корневой папки моего приложения (вместо жестко заданного пути)?

В соответствии с инструкциями CP (http://www.cherrypy.org/wiki/StaticContent) я попробовал следующее в моем файле конфигурации:

tree.cpapp = cherrypy.Application(cpapp.Root())
tools.staticdir.root = cpapp.current_dir

но когда я бегу cherrpy.quickstart(rootclass, script_name='/', config=config_file) Я получаю следующую ошибку

builtins.ValueError: («Ошибка конфигурации в разделе:« global », опция:« tree.cpapp », значение:« cherrypy.Application (cpapp.Root ()) ». Значения конфигурации должны быть действительными Python . ", 'TypeError', (" unrepr не удалось разрешить имя 'cpapp' ",))

Я знаю, что могу выполнить настройку из файла main.py непосредственно перед вызовом быстрого запуска (например, используя os.path.abspath (os.path.dirname ( file ))), но я если возможно, используйте идею отдельного файла конфигурации.

Буду признателен за любую помощь (если она уместна, я использую CP 3.2 с Python 3.1)

TIA Alan

1 Ответ

2 голосов
/ 02 июня 2010

Когда вы ссылаетесь на модуль внутри записей конфигурации, CherryPy сначала ищет этот модуль в sys.modules. Таким образом, одним из решений будет import cpapp непосредственно перед вызовом быстрого старта.

Но если поиск в sys.modules завершается неудачно, CherryPy пытается __import__ модуль. Поскольку это также не помогает, вам может потребоваться выяснить, действительно ли ваш модуль cpapp.py действительно импортируем.

См. lib/reprconf.py модуль для всех подробностей.

...