2011-08-02 6 views
0

私のdjangoプロジェクトでは、bpythonを利用するためにmanage.py shellの単純な置き換えを書いたかったのです。基本的にはsetup_environ(settings)が実行され、一般的なモデル(ユーザーなど)がインポートされます。hashbang行のPythonインタラクティブなインタプリタ

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スタイルであることを二重にチェックしました。 wikipediaから

答えて

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. 

それは大したことない場合、あなたはおそらく代わりに/usr/bin/envを通過するのbpythonへの実際のパスを使用した方がいいでしょう。

関連する問題