В настоящее время я нахожусь в среде Windows 7, разрабатывающей веб-приложение Pyramid. Я разрабатывал это приложение на своем Mac, но недавно умер, поэтому мне пришлось перейти на мою машину Windows.
Я создал все, что мне нужно; Python 2.7, Pyramid, pyramid_beaker, MongoDB, mongoengine и т.д.
Казалось, что я работаю, пока редактирую шаблоны. Однако, когда я попытался отредактировать представление, чтобы добавить новую страницу в приложение, он, похоже, не сможет его найти. Я добавил следующие маршруты:
config.add_route('info_about','/info/about')
config.add_route('info_contact','/info/contact')
config.add_route('info_copyright','/info/copyright')
config.add_route('info_privacy','/info/privacy')
config.add_route('info_terms','/info/terms')
... которые обрабатываются декодером view_config следующим образом:
@view_config(route_name='info_about', renderer="myproject:templates/info/about.mako", permission='all')
def info_about(request):
<code goes here>
Это находится в файле info.py
в подпапке просмотра (который содержит файл __init__.py
). Этот метод работал, когда я был на моем Mac, но теперь, когда я пытался работать в Windows, он, похоже, не работает (он пытается открыть страницу 404 Not Found при попытке получить к ней доступ).
После небольшого расследования я обнаружил, что версия .pyc
info.py
(скомпилированная версия) не существует. info.py
является новым и был добавлен на машину Windows. В качестве теста я попытался отредактировать файл, созданный на Mac, и перезапустить тестовый сервер. Он также не изменил аналог .pyc
, поэтому я пришел к выводу, что Windows не создает версию python .pyc
.
Это общая проблема, и что еще более важно, есть ли решение? (Я должен предположить, что есть...)
Извините, ваш вопрос недостаточно ясен. Кажется, у вас есть какие-то проблемы с правами на чтение/запись, а генерация *.pyc не имеет к этому никакого отношения.
*. pyc содержит байт-код Python, на самом деле он просто загружает исходные *.py файлы быстрее. Каждый раз, когда Python успешно читает файл *.py и умеет писать (!) В тот же каталог, он создает соответствующий *.pyc файл.
Для получения дополнительной информации см. скомпилированные файлы python.
import sys
;print sys.dont_write_bytecode
? и если вы используете ярлык для Python, проверьте, имеет ли он флаг -B или нет.