Python標準ライブラリ全体をインポートする
質問
Python標準ライブラリ全体をプログラムにインポートする方法が必要です。
これは悪い考えのように思えるかもしれませんが、これを行いたいので、py2exeは標準ライブラリ全体を私のプログラムにパッケージ化するので、ユーザーは私が与えたシェルでそれからインポートできます。
これを行う簡単な方法はありますか
ボーナスポイント:このアクションでは、site-packagesにインストールしたがPythonに付属していないパッケージはインポートしないことをお勧めします。ただし、これは重要ではありません。
解決
ちょっと、ちょっと考えました:stdlibのすべてのモジュールのリストが必要なだけです。次に、次のように、各モジュールを「手動で」インポートするPythonスクリプトを自動的に生成します:
import re
import math
import time
# ...
そしてそれを私のプログラムに含めます。
したがって、必要なのは、stdlibのすべてのモジュール/パッケージの簡単にフォーマットされたリストだけです。さて、どうやってそれを手に入れますか?
更新:
次のようなリストを取得しました:仮想マシンにPython 2.6をインストールしてから、IDLEで実行しました:
import pkgutil
stuff = [thing[1] for thing in pkgutil.iter_modules()]
stuff.sort() # To make it easy to look through
print(stuff)
次に、出力をIDEにコピーして、書き込み用の小さなスクリプトを作成しました。
if False:
import re
import email
import time
# ...
プログラムにインポートするPythonモジュールに。
動作します! py2exeはstdlib全体をパックします。
更新:
これを行うパッケージを作成しました。ここにアップロードしますが、アップロードボタンが表示されないため、プロジェクトフォルダから取得できます。
http://github.com/cool-RR/PythonTurtle/tree/master
フォルダ src
にあり、パッケージは almostimportstdlib
と呼ばれ、文書化されています。
他のヒント
すべてのPython標準ライブラリからzipファイルを作成し、プログラムの起動時に sys.path
に追加しました。
ソースを見ることができますこちら(放棄されたプロジェクト)