0

对于我的 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有效(但显然不会进入交互式提示)。

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

我应该注意我在一个 virtualenv 中,并且我已经仔细检查了行尾是 *nix 样式。

4

1 回答 1

0

来自维基百科

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.

于 2011-08-02T04:01:52.717 回答