Форум сайта python.su
Пытаюсь разобраться во внутренней кухне Питона, интересно и непоняно.
Появился такой вопрос - имеется файл zzz.pyc, который хочется запустить из своего скрипта.
Как это сделать?
execfile ожидает сорцов, а не скомпилированный файл. Но есть только скомпилированные.
Вот например, модуль m.pyc ожидает в модуле config.pyc неких констант. Отредактировать config.pyc я не могу, хочу написать “обертку”.
То есть, скажем, переименовать config.pyc в config2.pyc, написать свой config.py где сначала вызвать оригинальный (ныне переименованный) файл, а затем уже переопределить то, что мне нужно.
Так можно сделать?
Офлайн
import zzz
Офлайн
спасибо!
import аналогичен include() у РНР? :)
Офлайн
ctocopokточнее include_once(), но гораздо интереснее ;-)
import аналогичен include() у РНР?
Офлайн
Subideal OxУгу? Куда меня импортировать-то?
import zzz
ctocopokНет. Импорт и инклюд, это совершенно разные вещи и если хочешь писать на питоне, то должен забыть про PHP. Эти языки не совместимы ни синтаксически, ни архитектурно, ни логически и в одной голове не умещаются.
import аналогичен include() у РНР?
Офлайн
То, что языки друг другу мешают, уже не раз ощущал. После написания с грехом пополам рабочего скрипта, а то и двух, надо было накарябать что-то на РНР.
Ну и тут ломать стало, доллар перед переменной поставь, точку с запятой не забудь, ну и еще многое.
Офлайн
О, еще вопрос.
В похапе есть такие функции как __FILE__ и __LINE__ помогающие, если что, определить, в каком мы файле.
Есть такое в Питоне?
Например, чтобы импортить файлы из того же каталога, что и импортирующий скрипт?
Офлайн
ctocopokЗдесь импортируют модули, а не файлы. Это принципиально. Забудь про аналогии и PHP. Читай документацию http://docs.python.org/reference/simple_stmts.html#the-import-statement
В похапе есть такие функции как __FILE__ и __LINE__ помогающие, если что, определить, в каком мы файле.
Есть такое в Питоне?
Например, чтобы импортить файлы из того же каталога, что и импортирующий скрипт?
ZZZВиноват :D
Угу? Куда меня импортировать-то?
Офлайн