8

Pythonスクリプトのシバン(または必要に応じてマジックナンバー)にすでにある.pycファイルの作成をPythonが停止する方法はありますか?

動作していません:

#!/usr/bin/env python -B
4

4 に答える 4

7

env.

#!/usr/bin/python -B

もちろん、これは、env を使用することによる移植性の利点の一部を失うことを意味します。この問題については、ウィキペディアの Shebang ページで env に関する議論があります。彼らは、env の例の 1 つとして python を使用しています。

于 2012-11-14T10:10:28.693 に答える
4

はい、Python プログラムがある程度 POSIX 互換のシステム (/bin/sh 用) で実行されると仮定した場合に限り、次のように動作します。

( glglglからの入力に基づいて改善)

#!/bin/sh
"exec" "python" "-B" "$0" "$@"

# The rest of the Python program follows below:
于 2012-11-14T10:15:07.290 に答える
4

env の man ページによると、name=value環境変数を設定するために渡すことができます。環境変数により、Pythonは.py[co] ファイルを書き込まなくなります (フラグ toPYTHONDONTWRITEBYTECODEと同じです)。だから使って-Bpython

#!/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

于 2012-11-14T10:15:45.167 に答える
3

ああ、いいえ。シバンのものは、実行可能ファイルと1つのパラメーターを与えることに限定されています。

そのため、現在のファイルを 2 つの引数として使用する代わりに、指定されたファイルを 1 つの引数として実行を試みenvます。python -Bpython-B

望んでいた目標を達成する方法がわかりません。

于 2012-11-14T10:00:37.087 に答える