Pythonスクリプトのシバン(または必要に応じてマジックナンバー)にすでにある.pycファイルの作成をPythonが停止する方法はありますか?
動作していません:
#!/usr/bin/env python -B
env.
#!/usr/bin/python -B
もちろん、これは、env を使用することによる移植性の利点の一部を失うことを意味します。この問題については、ウィキペディアの Shebang ページで env に関する議論があります。彼らは、env の例の 1 つとして python を使用しています。
はい、Python プログラムがある程度 POSIX 互換のシステム (/bin/sh 用) で実行されると仮定した場合に限り、次のように動作します。
( glglglからの入力に基づいて改善)
#!/bin/sh
"exec" "python" "-B" "$0" "$@"
# The rest of the Python program follows below:
env の man ページによると、name=value
環境変数を設定するために渡すことができます。環境変数により、Pythonは.py[co] ファイルを書き込まなくなります (フラグ toPYTHONDONTWRITEBYTECODE
と同じです)。だから使って-B
python
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
トリックを行う必要があります。
編集:
これを単純な Python スクリプトでテストしました。
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
print 1
それから
$chmod +x test.py
$./test.py
1
$ls
test.py
(しかしそうではないtest.pyc
)
ああ、いいえ。シバンのものは、実行可能ファイルと1つのパラメーターを与えることに限定されています。
そのため、現在のファイルを 2 つの引数として使用する代わりに、指定されたファイルを 1 つの引数として実行を試みenv
ます。python -B
python
-B
望んでいた目標を達成する方法がわかりません。