「test.py」などのテストスクリプトがあり、スクリプトが開始する前に特定の環境変数を設定して実行するように作成したいと思います。
#!/usr/bin/env TEST=anything python
print "Hello, world."
これを実行すると、通常は期待どおりに機能します。
$ python test.py
Hello, world.
ただし、プログラムとして実行すると、次のようになります。
$ chmod +x test.py
$ ./test.py
文字列が出力されることはありません。代わりに、実行が停止し、「top」が100%CPUを使用している「test.py」と呼ばれるプロセスを報告します。
これは私のUbuntuマシンでのみ発生し、OSXでは問題ないようです。
その理由は、最終的には、次のように設定して、特定のスクリプトを常に32ビットPythonで実行するようにしたいためです。
#!/usr/bin/env VERSIONER_PYTHON_PREFER_32_BIT=yes python
ファイルの先頭にあります。ただし、スクリプトがLinuxマシンで実行されないことを意味する場合、これは失敗です。指定された環境変数が何と呼ばれていても、同様の効果があることがわかりました。ただし、環境変数が設定されていない場合:
#!/usr/bin/env python
print "Hello, world."
スクリプトは問題なく実行されます。
$ ./test.py
Hello, world.
これはPythonまたはのバグenv
ですか、それとも何か間違ったことをしていますか?