[Python]Препроцессор?
От: DuШes  
Дата: 02.03.09 09:26
Оценка:
возможно ли такое в питоне:

#if Debug
import debug_lib
#else
import runtime_lib

т.е. нужны аналоги директив препроцессора, или каким-то образом указать условия, что такие то строки кода питоном обрабатываться не будут>?
python preprocessor
Re: [Python]Препроцессор?
От: Daevaorn Россия  
Дата: 02.03.09 09:35
Оценка:
Здравствуйте, DuШes, Вы писали:

DШ>возможно ли такое в питоне:


DШ>#if Debug

DШ> import debug_lib
DШ>#else
DШ> import runtime_lib

DШ>т.е. нужны аналоги директив препроцессора, или каким-то образом указать условия, что такие то строки кода питоном обрабатываться не будут>?


К счастью питон динамический, поэтому можно так:

if debug:
    import debug_lib
else:
    import runtime_lib
Re[2]: [Python]Препроцессор?
От: DuШes  
Дата: 02.03.09 11:15
Оценка:
Здравствуйте, Daevaorn, Вы писали:

[...]
DШ>>т.е. нужны аналоги директив препроцессора, или каким-то образом указать условия, что такие то строки кода питоном обрабатываться не будут>?

D>К счастью питон динамический, поэтому можно так:


D>
D>if debug:
D>    import debug_lib
D>else:
D>    import runtime_lib
D>



ну вот к сожалению, это не выход из ситуации...
проблема в следующем:
в качестве IDE используется wing, внешний модуль runtime_lib, который импортируется, доступен только из хост-среды, запускающей .py...
поэтому я и пишу пока debug-версию, потом для отладки в сприпте вручную прописываю import runtime_lib, размещаю скрипт в хост-среде внешнего приложения и запускаю....

если же оставтить директиву import runtime_lib, то wing-овский itellisense начинает ругаться на неразрешенную ссылку на файл, соотвественно отладка в таком случае становится невозможной
Re[3]: [Python]Препроцессор?
От: kmmbvnr Россия http://kmmbvnr.livejournal.com
Дата: 02.03.09 14:30
Оценка: 6 (1)
Здравствуйте, DuШes, Вы писали:

D>>
D>>if debug:
D>>    import debug_lib
D>>else:
D>>    import runtime_lib
D>>



DШ>ну вот к сожалению, это не выход из ситуации...

DШ>проблема в следующем:
DШ>в качестве IDE используется wing, внешний модуль runtime_lib, который импортируется, доступен только из хост-среды, запускающей .py...
DШ>если же оставтить директиву import runtime_lib, то wing-овский itellisense начинает ругаться на неразрешенную ссылку на файл, соотвественно отладка в таком случае становится невозможной

А если так:

D>>
D>>if debug:
D>>    import debug_lib as runtime_lib
D>>else:
D>>    runtime_lib = __import__('runtime_lib')
D>>


?
-- Главное про деструктор копирования не забыть --
Re[3]: [Python]Препроцессор?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 02.03.09 14:59
Оценка:
Здравствуйте, DuШes, Вы писали:

DШ>ну вот к сожалению, это не выход из ситуации...

DШ>проблема в следующем:
DШ>в качестве IDE используется wing, внешний модуль runtime_lib, который импортируется, доступен только из хост-среды, запускающей .py...
DШ>поэтому я и пишу пока debug-версию, потом для отладки в сприпте вручную прописываю import runtime_lib, размещаю скрипт в хост-среде внешнего приложения и запускаю....

DШ>если же оставтить директиву import runtime_lib, то wing-овский itellisense начинает ругаться на неразрешенную ссылку на файл, соотвественно отладка в таком случае становится невозможной


А что мешает у себя сделать заглушку для runtime_lib?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: [Python]Препроцессор?
От: DuШes  
Дата: 03.03.09 06:29
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, DuШes, Вы писали:


DШ>>ну вот к сожалению, это не выход из ситуации...

DШ>>проблема в следующем:
DШ>>в качестве IDE используется wing, внешний модуль runtime_lib, который импортируется, доступен только из хост-среды, запускающей .py...
DШ>>поэтому я и пишу пока debug-версию, потом для отладки в сприпте вручную прописываю import runtime_lib, размещаю скрипт в хост-среде внешнего приложения и запускаю....

DШ>>если же оставтить директиву import runtime_lib, то wing-овский itellisense начинает ругаться на неразрешенную ссылку на файл, соотвественно отладка в таком случае становится невозможной


KV>А что мешает у себя сделать заглушку для runtime_lib?


да вообщем-то обошелся использованием exec()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.