これは私のテストスイート用です。
一時フォルダーに自動生成された Python パッケージがあります。すべての.py
ファイルです。.pyc
これらをプログラムで (a)と (b)のファイルにコンパイルしたいと考えてい.pyo
ます。(1 つのテストでは が実行され.pyc
、別のテストでは が実行されます.pyo
。)もちろん、これはアクティブなインタープリターで実行する必要があります。モジュールをインポートしたくありません。コンパイルするだけです。
これどうやってするの?
これは私のテストスイート用です。
一時フォルダーに自動生成された Python パッケージがあります。すべての.py
ファイルです。.pyc
これらをプログラムで (a)と (b)のファイルにコンパイルしたいと考えてい.pyo
ます。(1 つのテストでは が実行され.pyc
、別のテストでは が実行されます.pyo
。)もちろん、これはアクティブなインタープリターで実行する必要があります。モジュールをインポートしたくありません。コンパイルするだけです。
これどうやってするの?
compileall.py
Python lib ディレクトリには、 (例: )というスクリプトがあります/usr/lib/python2.6/compileall.py
。
コード内で、生成されたコードを含むディレクトリを指すos.spawnl
の呼び出しを (たとえば、 を使用して) 生成します。compileall.py
を使用して呼び出すと、ファイルpython -O
が生成されます。.pyo
それを使用して呼び出すと、ファイルpython
が生成され.pyc
ます。
秘訣は、適切なバージョンの Python インタープリターで呼び出すことだと思います。
compileall.py
py_compile
フードの下で使用します。
py_compile
モジュールを見てみたいかもしれません。pyo
残念ながら、とのどちらかを選択することはできませんpyc
。
Python モジュール (*.py) をインポートしたディレクトリに書き込み権限がある限り、同じ名前の *.pyc ファイルが生成されることに注意してください。さらに、*.pyc と *.pyoは、モジュールのロード時間の短縮を除いて、プログラムにパフォーマンスを追加しません。