LINUX.ORG.RU

как сделать универсальную строку интерпретатора для вин и никс

 


0

1

Есть скрипт
первая строка:

#!/usr/local/bin/python3

А на винде там должно быть

#!C:/python32/python.exe

Как сделать так, чтобы постоянно не менять эту строку при переносе скрипта с линукса на винду и обратно? Есть универсальное решение?

#!/usr/local/bin/python3

Говнокод как он есть.

А на винде там должно быть

#!C:/python32/python.exe

Что правда!? Венда уже шебанги начала понимать (cygwin не в счёт)?

Begemoth ★★★★★
()

ЕМНИП если в винде стоит python, то если 2 раза кликнуть по .py файлу, он запустится. Пути определены туда куда ты ставил. Для windos по идее, можно эту строчку пропустить.

ymuv ★★★★
()
Ответ на: комментарий от akinator

Так это, извините, не венда. Это апач. Если уж ТСу не хочется sed-ом менять пути в скриптах, то тогда самое простое решение — пропатчить апач.

geekless ★★
()
Ответ на: комментарий от ymuv

ЕМНИП если в винде стоит python, то если 2 раза кликнуть по .py файлу, он запустится. Пути определены туда куда ты ставил. Для windos по идее, можно эту строчку пропустить.

Да, было такое. В венде по-другому скрипты и не запускают.

Хотя строчка с

#!/usr/bin/env python3
все равно была, венда на нее внимания не обращала.

unfo ★★★★★
()
Ответ на: комментарий от akinator

Говнокод как он есть.

Умница, я знаю про bin/env, в данном случае речь не об этом.

Что правда!? Венда уже шебанги начала понимать (cygwin не в счёт)?

ты не поверишь..

За ссылку на стек спасибо, разобрался.

В .htaccess пишем ScriptInterpreterSource Registry-Strict
А в реестр добавляем:



Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pyw]
@=«Python.File»
«Content Type»=«text/plain»

[HKEY_CLASSES_ROOT\.pyw\Shell]

[HKEY_CLASSES_ROOT\.pyw\Shell\ExecCGI]

[HKEY_CLASSES_ROOT\.pyw\Shell\ExecCGI\Command]
@=«c:\\Python32\\python.exe»

[HKEY_CLASSES_ROOT\.py]
@=«Python.File»
«Content Type»=«text/plain»

[HKEY_CLASSES_ROOT\.py\Shell]

[HKEY_CLASSES_ROOT\.py\Shell\ExecCGI]

[HKEY_CLASSES_ROOT\.py\Shell\ExecCGI\Command]
@=«c:\\Python32\\python.exe»

sergey-novikov ★★★
() автор топика

Питон при установке регистрирует в системе своё расширение, любой файл с расширением *.py будет запускаться через python.exe. А всё что начинается c # в винде это комментарий без исключений.

Zimet
()

А на винде там должно быть

#!C:/python32/python.exe

Что за глупость?

cmd такое не обработает, а bash'у из mingw можно и #!/usr/local/bin/python3 передать.

buddhist ★★★★★
()
Ответ на: комментарий от sergey-novikov

Тогда уж так

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pyw]
@=«Python.File»
«Content Type»=«text/plain»

[HKEY_CLASSES_ROOT\.py]
@=«Python.File»
«Content Type»=«text/plain»

[HKEY_CLASSES_ROOT\Python.File\Shell]
«FriendlyTypeName»=«Python File»

[HKEY_CLASSES_ROOT\Python.File\Shell\ExecCGI]
@=«Exec»

[HKEY_CLASSES_ROOT\Python.File\Shell\ExecCGI\Command]
@=«c:\\Python32\\python.exe»

Uter
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.