Windows не генерирует скомпилированные файлы Python

1

В настоящее время я нахожусь в среде 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.

Это общая проблема, и что еще более важно, есть ли решение? (Я должен предположить, что есть...)

  • 0
    Файлы .pyc предназначены только для более быстрого импорта модулей - вы можете спокойно их игнорировать и даже удалять. но если вам все еще интересно это узнать, что вы получите, если зайдете import sys ; print sys.dont_write_bytecode ? и если вы используете ярлык для Python, проверьте, имеет ли он флаг -B или нет.
Теги:
pyramid

1 ответ

3
Лучший ответ

Извините, ваш вопрос недостаточно ясен. Кажется, у вас есть какие-то проблемы с правами на чтение/запись, а генерация *.pyc не имеет к этому никакого отношения.

*. pyc содержит байт-код Python, на самом деле он просто загружает исходные *.py файлы быстрее. Каждый раз, когда Python успешно читает файл *.py и умеет писать (!) В тот же каталог, он создает соответствующий *.pyc файл.

Для получения дополнительной информации см. скомпилированные файлы python.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню