假设您已经在 python 发行版上安装了 pip 或 easy_install,我想知道如何从脚本本身中的用户目录中安装所需的包。
据我所知,pip 也是一个 python 模块,因此解决方案应该如下所示:
try:
import zumba
except ImportError:
import pip
# ... do "pip install --user zumba" or throw exception <-- how?
import zumba
我缺少的是从 python 内部执行“pip install –user zumba”,我不想使用 os.system()
来执行此操作,因为这可能会产生其他问题。
我认为这是可能的……
原文由 sorin 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新了较新的 pip 版本 (>= 10.0):
多亏了@Joop,我才能够想出正确的答案。
一个重要的评论是,这将在不需要 root 访问权限的情况下工作,因为它将在用户目录中安装模块。
不确定它是否适用于二进制模块或需要编译的模块,但它显然适用于纯 python 模块。
现在您可以编写自包含的脚本,而不必担心依赖性。