3

mint 13 を実行しており、apt-getパッケージ管理システムを使用して python 3.2 をインストールしています。3.2 と共に python 2.7 もインストールしています。pycompile は、python 2.7 コードをパッケージ化し、python 3.2 コードの例外をスローするようです。

周りを見回していくつかのパッケージをインストールしようとしましたが、python 3.2 の pycompile を見つけることができませんでした。Python 3.2 で pycompile を動作させるにはどうすればよいですか?

4

2 に答える 2

7

py_compilePython ソースを指定してバイトコードを生成できる stdlib モジュールです。必要になることはめったにありません。

Python 3 ソース コードをコンパイルするには、コマンドラインから使用する場合、Python 2.7 のバージョンではなく、含まれている py_compile バージョンを使用する必要があります。

$ python3 -mpy_compile your_script.py

pyc ファイルが保存されるデフォルトの場所を変更するには、関数cfileのパラメーターを使用できます。py_compile.compile()

バイト コードにより、スクリプトの実行速度は向上しますか?

かもしれません(ごくわずかですが)。Python コンパイラはあまり処理を行わないため高速です。

人間が読める形式でバイトコードがどのように見えるかの例を次に示します。

>>> def f(o):
...     with o:
...         pass
...
>>> import dis   
>>> dis.dis(f)
  2           0 LOAD_FAST                0 (o)
              3 SETUP_WITH               5 (to 11)
              6 POP_TOP             

  3           7 POP_BLOCK           
              8 LOAD_CONST               0 (None)
        >>   11 WITH_CLEANUP        
             12 END_FINALLY         
             13 LOAD_CONST               0 (None)
             16 RETURN_VALUE

すべての重労働は、実行時にバイトコードを解釈する Python インタープリターに任されています。

それとも配布専用ですか?

ドキュメントはユース ケースを提供します。カーテン ユーザーのみが書き込み可能な Python モジュールを含む共有ディレクトリです。ディスクへのバイトコードのキャッシュを無効にできるため、対応するpycファイルなしで読み取り専用の場所に保存されているpyファイルを使用できます。

なぜほとんど使用されないのですか?

通常、pyc ファイルはビルド/インストール プロセスによって作成されます。pyc ファイルがない場合は、モジュールをインポートするときにオンザフライで作成できます。

$ python -c 'import some_module'
于 2012-10-22T03:17:11.520 に答える
0

これは私が発見したものです:http://effbot.org/librarybook/py-compile.htm

上記のリンクで説明されているように、Python3.2シェルを起動できます。その結果、奇数ディレクトリに.pycファイルが作成されます。pycは.pyテキストファイルよりも大きいです(これが発生する必要がありますか?)これは、pycompileほど満足のいく解決策ではありません-何かが見つかるまで、これに苦しむ必要があるかもしれません:-(

于 2012-10-22T02:55:56.233 に答える