Pythonでzipファイルに圧縮したパッケージからimportする方法です。
はじめに
「パッケージ zip import」でググると、以前はすぐに見つかったのですが、最近はググっても全然見つからなくて困るので自分用にメモする。
ちなみに、私はパッケージ/モジュールの違いがよく分かってないです。
動作確認環境
- Windows10 64bit
- Python3.9
基本的にはOS関係なく動くが、パッケージにOSプラットフォームに依存するファイル(バイナリファイルなど)が含まれる場合、zipファイルを作った環境と実行する環境でOSプラットフォームが異なると動かなかったりする(らしい)。
実施
例として、zipから「beautifulsoup4」をインポートしてみる。
zipファイルの作成
・フォルダを作成 md library ・パッケージをインストール pip3 install beautifulsoup4 -t library ・パッケージをzip化 powershell Compress-Archive -Path library\* -DestinationPath library.zip ・zipファイルの中身を確認 explorer library.zip
パッケージのimport
下記をソースコードの先頭に書くと「library.zip」内のパッケージをimportしてくれる。
# -*- coding: utf-8 -*- import os, sys basepath = os.path.split(os.path.realpath(__file__))[0] sys.path.insert(0, os.path.join(basepath, 'library.zip')) import requests from bs4 import BeautifulSoup