Как узнать, правильно ли загружает Pyramid/python .egg?

Это странный вопрос, но он сводил меня с ума последние 3 часа. Я хотел поиграть с CMS на основе пирамиды Kotti и допустил ошибку, сначала установив ее с помощью easy_install. (sudo easy_install kotti). У меня странное поведение, и я не уверен, связано ли это с самой программой или с тем, как я ее установил.

Я хочу изменить некоторые части кода и посмотреть, как это работает, но мои изменения не вступают в силу. После того, как я установил его через easy_install, я сделал:

virtualenv mysite --no-site-packages
bin/easy_install pyramid
git clone https://github.com/Pylons/Kotti.git
cd Kotti
sudo ../bin/python setup.py develop
../bin/pserve app.ini --reload

Я зашел на 127.0.0.0:5000 и увидел, что он работает. На первой странице есть текст «Поздравляем! Вы успешно установили Kotti». поэтому я зашел в каталог kotti, сделал grep "Congratulations" *.* и обнаружил, что он исходит из заполнить.py. Поэтому я открыл файл, изменил строку на другой фрагмент текста и сохранил. Поскольку у меня есть флаг --reload на pserve, я заметил, что он перезагрузил мой код на терминале, и когда я вернулся на сайт, данные не изменились.

Я так запутался, потому что сервер перезагружается, когда я меняю код Python, поэтому он видит изменение, но не отражается в браузере (просто чтобы проверить, является ли это кешем браузера, я попробовал его с помощью разных браузеров и очистил кеш).

Любые идеи?


person Lostsoul    schedule 24.06.2012    source источник
comment
Модуль populate создает новый корневой документ, только если он еще не существует; изменение кода не изменит уже сгенерированный документ.   -  person Martijn Pieters    schedule 24.06.2012


Ответы (2)


Запуск python -v покажет все импорты

person John La Rooy    schedule 24.06.2012

Когда вы запускаете веб-приложение Kotti в первый раз, как и в большинстве систем CMS, оно запускает набор методов заполнения данных (включая упомянутый вами код populate.py) для настройки базы данных и вставки всего контента, который вы видите. --reload только говорит серверу развертывания следить за изменениями файлов, когда вы работаете с файловой системой.

Если вы хотите повторно запустить код установки/заполнения, вам необходимо удалить созданную базу данных. Если вы не вносили никаких изменений в их пример файла app.ini, скорее всего, это будет Kotti.db.

В качестве альтернативы используйте CMS для внесения изменений, как это предусмотрено системами CMS.

person Jimmy Hillis    schedule 13.07.2012