跳转到主要内容

自动安装导入

项目描述

导入 🛸

自动安装缺失的导入

PyPI version

这是个好主意吗?可能不是。

你应该使用它吗?可能不是。

这是什么?

importation劫持Python中的import关键字来测试模块是否可导入,并自动安装缺失的包。

如果你在一个虚拟环境中,它会将其安装到你的当前虚拟环境中。如果没有,它会在__pypackages__/importation中创建一个,将其添加到sys.path,以便可以发现包,并在此处安装缺失的包。

它通过在__pypackages__中解析包并自动安装到它们中,将PEP-582 "Python本地包目录"进一步推进。

我如何获得它?

> python -m pip install importation --user

我如何使用它?

只需导入它。

导入它的行为会产生劫持Python导入系统的副作用。

# example.py
import importation  # noqa: 401
import httpx

print("module resolved at", httpx.__file__)

然后

$ python test.py
# module resolved at /home/__pypackages__/importation/lib/python3.8/site-packages/httpx/__init__.py

要调试或查看它的详细信息,请设置IMPORTATION_VERBOSE环境变量

$ IMPORTATION_VERBOSE=1 python test.py

免责声明

此代码仅在此极其简单的示例中进行了测试。

致谢

此软件包受到PEP-582magicimport.py的启发。