ctocopok
Апрель 9, 2011 13:22:56
Пытаюсь разобраться во внутренней кухне Питона, интересно и непоняно.
Появился такой вопрос - имеется файл zzz.pyc, который хочется запустить из своего скрипта.
Как это сделать?
execfile ожидает сорцов, а не скомпилированный файл. Но есть только скомпилированные.
Вот например, модуль m.pyc ожидает в модуле config.pyc неких констант. Отредактировать config.pyc я не могу, хочу написать “обертку”.
То есть, скажем, переименовать config.pyc в config2.pyc, написать свой config.py где сначала вызвать оригинальный (ныне переименованный) файл, а затем уже переопределить то, что мне нужно.
Так можно сделать?
Subideal Ox
Апрель 9, 2011 14:42:32
import zzz
ctocopok
Апрель 9, 2011 14:52:46
спасибо!
import аналогичен include() у РНР? :)
Subideal Ox
Апрель 9, 2011 15:19:57
ctocopok
import аналогичен include() у РНР?
точнее include_once(), но гораздо интереснее ;-)
ZZZ
Апрель 9, 2011 16:00:41
Subideal Ox
import zzz
Угу? Куда меня импортировать-то?
ctocopok
import аналогичен include() у РНР?
Нет. Импорт и инклюд, это совершенно разные вещи и если хочешь писать на питоне, то должен забыть про PHP. Эти языки не совместимы ни синтаксически, ни архитектурно, ни логически и в одной голове не умещаются.
ctocopok
Апрель 9, 2011 22:49:32
То, что языки друг другу мешают, уже не раз ощущал. После написания с грехом пополам рабочего скрипта, а то и двух, надо было накарябать что-то на РНР.
Ну и тут ломать стало, доллар перед переменной поставь, точку с запятой не забудь, ну и еще многое.
ctocopok
Апрель 10, 2011 02:34:18
О, еще вопрос.
В похапе есть такие функции как __FILE__ и __LINE__ помогающие, если что, определить, в каком мы файле.
Есть такое в Питоне?
Например, чтобы импортить файлы из того же каталога, что и импортирующий скрипт?
Subideal Ox
Апрель 10, 2011 04:27:19
ctocopok
В похапе есть такие функции как __FILE__ и __LINE__ помогающие, если что, определить, в каком мы файле.
Есть такое в Питоне?
Например, чтобы импортить файлы из того же каталога, что и импортирующий скрипт?
Здесь импортируют модули, а не файлы. Это принципиально. Забудь про аналогии и PHP. Читай документацию
http://docs.python.org/reference/simple_stmts.html#the-import-statementZZZ
Угу? Куда меня импортировать-то?
Виноват :D