Python
 Computer >> コンピューター >  >> プログラミング >> Python

zipapp-実行可能なPythonzipアーカイブを管理します


zipappモジュールは、バージョン3.5以降のPythonの標準ライブラリに導入されています。このモジュールは、Pythonインタープリターによって直接実行できるPythonコードを含むzipファイルの作成を管理するために使用されます。このモジュールは、コマンドラインインターフェイスとプログラミングインターフェイスの両方を提供します。

プログラムでzipappモジュールを使用するには、main関数が存在するモジュールが必要です。実行可能アーカイブは、次のコマンドで作成されます-

python -m zipapp myapp -m "example:main"

ここで、現在のパスにはmyappというフォルダーが必要です。このフォルダには、main()関数が必要なexample.pyがあるはずです。

myappフォルダーを作成し、次のコードをexample.pyとして保存します-

def main():
   print ('Hello World')
if __name__=='__main__':
   main()

上記のコマンドをコマンドターミナルから実行すると、myapp.pyzが作成されます。これで、コマンドプロンプトから実行できます。

C:\python37>python myapp.pyz
Hello World

次のコマンドラインオプションがサポートされています-

-o <output>, --output=<output>

デフォルトでは、出力ファイル名の拡張子は.pyzで、名前は入力ソースと同じです。 -oオプションで指定することで変更できます。

-p <interpreter>, --python=<interpreter>

これは、実行するコマンドとしてインタプリタを明示的に指定するために使用されます。

-c, --compress

deflateメソッドを使用してファイルを圧縮し、出力ファイルのサイズを縮小します。

zipappモジュールはプログラムで使用できます。次の関数を定義します-

zipapp.create_archive(source)

ソースフォルダからアプリケーションアーカイブを作成します。さらに、インタプリタ、ターゲット、および圧縮された引数を使用できます。

zipapp.get_interpreter(archive)

#!で指定されたインタプリタを返します。アーカイブの先頭の行。

>>> import zipapp
>>> zipapp.create_archive('myapp.pyz', 'myapp')

  1. Pythonを使用してディレクトリのzipアーカイブを作成するにはどうすればよいですか?

    zipfileモジュールを使用して、ディレクトリのzipアーカイブを作成します。 os.walkを使用してディレクトリツリーをウォークし、その中のすべてのファイルを再帰的に追加します。 例 import os import zipfile def zipdir(path, ziph):     # ziph is zipfile handle     for root, dirs, files in os.walk(path):         for file in files:     &

  2. 複数のPythonモジュールをバンドルするにはどうすればよいですか?

    Python 2.6以降を使用している場合は、スクリプトをzipファイルにパッケージ化し、__ main __。pyを追加して、zipファイルを直接実行できます。たとえば、すべてのファイルをmy_app.zipというファイルに圧縮し、メインスクリプトを__main __。pyに配置すると、Pythonを使用してこのzipを実行できます。 $ python my_app.zip サードパーティのスクリプトを使用する場合は、stickytapeモジュールを参照してください。 Pythonスクリプトとそれに依存するPythonモジュールを単一ファイルのPythonスクリプトに変換するために使用でき