2012-03-29 1 views
2

を生成している、と私はsys.dont_write_bytecodeがTrueであることを確認しています。`sys.dont_write_bytecode`は本当ですが、.pycファイルのファイルは、まだ私は、ファイルをする.pyc避けるために<strong><em>PYHTONDONTWRITEBYTECODE</em></strong>環境変数を設定してい

しかし、.pycファイルはどこでも生成されます。

PS:私は私のスクリプトがenv -iの下で実行されていることを理由があるのPython 2.6.6

を使用しています。

+0

「sh-bang」に '-B'を追加しようとしましたか? '#!/ usr/bin/env python -B' – jdi

答えて

3

env変数が間違っている可能性がありますか? PYTHONDONTWRITEBYTECODE

これは動作します:python -B -c "import test"

そしてtest.pyをインポートするスクリプトを直接実行している: ./importer.py

importer.py

#!/usr/bin/env python -B 

import test 
PYTHONDONTWRITEBYTECODE=1 python -c "import test"

だからこれを行います

+0

私はsys.dont_write_bytecodeがTrueであることを確認しましたので、typoはここでは問題ではないかもしれません。 – satoru

+0

私の提案はうまくいきませんか? – jdi

1

正しく綴りを入れているのとは別に、単に変数を設定するのではなく、変数が実際にエクスポートされていることを確認してください。

たとえば、bashのを使用している場合は、試してみてください。

export PYTHONDONTWRITEBYTECODE=1 

かを:

PYTHONDONTWRITEBYTECODE=1 
export PYTHONDONTWRITEBYTECODE 
2

それはあなたのモジュールをインポートする前に表示されます。私はコードの先頭に移動して動作します。

#!/bin/python 

import sys 
sys.dont_write_bytecode = True 

import myModule 
+0

これはUbuntu 16.04とWindows 10の両方でPython 3.5で私にとって役に立ちました。 –

+0

起動中/起動前に 'sys'を各モジュールまたは' ipython'でインポートすると意図しない結果がありますか? –

+1

Python 2の場合、最初のモジュールに追加するだけで、インタープリタのグローバルオプションです – aminhotob

関連する問題