hashbang行中的Python交互式解释器

时间:2011-08-02 00:34:46

标签: django bpython

对于我的django项目,我想写一个manage.py shell的简单替换来利用bpython。基本上它所做的只是运行setup_environ(settings),然后导入一些常见的模型(用户等)

在任何情况下,当我运行bpython -i bshell.py时,一切正常(我的脚本名为bshel​​l.py)。然后我想我会变得聪明并将hashbang行设置为#!/usr/bin/env bpython -i以使其更简单,并且这在OSX上工作但现在在Ubuntu(10.10)中不起作用。

#!/usr/bin/env python -i也不起作用,但#!/usr/bin/env bpython有效(但显然不会进入交互式提示)。

这是一个小问题,但在我的生命中,如果我可以像./bshell.py那样运行我的剧本,它将为我节省数百个“bpython -i”(真的我只是好奇)。任何想法为什么它不适用于Ubuntu?

我应该注意到我在使用virtualenv,我已经仔细检查了行结尾是* nix风格。

1 个答案:

答案 0 :(得分:0)

来自wikipedia

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