python 直接加载egg 文件的模块
主要作为一个简单记录
参考示例
- 文件模式
import sys
import os
egg_path = os.path.join(os.path.dirname(__file__), 'dist', 'mydalong-0.1-py3.11.egg')
sys.path.append(egg_path)
from demo import dalong
dalong.login()
- 文件夹模式
import sys
import os
import glob
egg_path = os.path.join(os.path.dirname(__file__), 'dist/')
egg_files = glob.glob(os.path.join(egg_path, '*.egg'))
for egg in egg_files:
sys.path.append(egg)
from demo import dalong
dalong.login()
说明
以上只是一个记录,基于egg 文件可以实现方便的python 应用分发运行,以上代码关于import 部分是硬编码的,实际可以结合动态模块加载的机制实现灵活的处理
参考资料
https://setuptools.pypa.io/en/latest/pkg_resources.html
https://docs.python.org/3.11/library/importlib.resources.html#module-importlib.resources