Запретить импорт Python компиляции - PullRequest
1 голос
/ 26 августа 2009

У меня есть файл Python, который импортирует несколько часто изменяемых файлов Python. У меня были проблемы с тем, что импортированные файлы не перекомпилировались при их изменении. Как мне остановить их компиляцию?

Ответы [ 4 ]

3 голосов
/ 26 августа 2009

Я не думаю, что это возможно - так работает Python. Лучшее, что вы могли бы сделать, я думаю, это иметь какой-то автоматический скрипт, который сначала удаляет *.pyc файлы. Или у вас может быть модуль разработки, который автоматически компилирует весь импорт - попробуйте модуль compile.

Лично у меня раньше не было этой проблемы, но попробуйте проверить временные метки в файлах. Вы можете попробовать запустить touch для всех файлов Python в каталоге. (find -name \\*.py -exec touch \\{\\} \\;)

1 голос
/ 26 августа 2009

В python 2.6 у вас должна быть возможность указать опцию -B.

1 голос
/ 26 августа 2009

Есть несколько модулей, которые могут вам помочь:

Модуль py_compile (http://effbot.org/librarybook/py-compile.htm) позволит вам явно компилировать модули (без их запуска, как в операторе import).

import py_compile
py_compile.compile("my_module.py")

Кроме того, модуль compileall (http://effbot.org/librarybook/compileall.htm)) скомпилирует все модули, найденные в каталоге.

import compileall
compileall.compile_dir(".", force=1)
0 голосов
/ 26 августа 2009

Вы ищете compileall

compileall.compile_dir (реж [, maxlevels [, ddir [, force [, rx [, тихий]]]]])

Рекурсивно спуститься в дерево каталогов с именем dir, компилируя все .py файлы по пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...