Интерактивный интерпретатор Python в строке hashbang - PullRequest
0 голосов
/ 02 августа 2011

Для моих проектов django я хотел написать простую замену manage.py shell, чтобы воспользоваться преимуществами bpython.По сути, все, что он делает - это запускает setup_environ(settings), а затем импортирует некоторые распространенные модели (пользовательские и т.Тогда я подумал, что должен проявить смекалку и установить строку hashbang на #!/usr/bin/env bpython -i, чтобы сделать ее еще проще, и это работало на OSX, но сейчас не работает в Ubuntu (10.10).

#!/usr/bin/env python -i также не работает, но #!/usr/bin/env bpython работает (но, очевидно, не попадает в интерактивную подсказку).

Это маленький вопрос, но в течение моей жизниэто спасет меня от сотен "bpython -i", если я смогу просто запустить свой скрипт как ./bshell.py (на самом деле мне просто любопытно).Есть идеи, почему он не работает на Ubuntu?

Я должен отметить, что я нахожусь в virtualenv, и я уже дважды проверил, что окончания строк * nix стиль.

1 Ответ

0 голосов
/ 02 августа 2011

С Википедия :

Another portability problem is the interpretation of the command arguments. 
Some systems, including Linux, do not split up the arguments; for example, 
when running the script with the first line like,

#!/usr/bin/env python -c

That is, python -c will be passed as one argument to /usr/bin/env, 
rather than two arguments.

Если это не так уж сложно, вам, вероятно, лучше использовать фактический путь к bpython вместо того, чтобы проходить через /usr/bin/env.

...