安装的应用程序必须对linux中的目录“可见”是什么意思?

jrcvhitl  于 2022-11-22  发布在  Linux
关注(0)|答案(2)|浏览(158)

我正在尝试部署openstack使用Kolla-ansible方法与this guide使用虚拟环境。当我写命令:

kolla-ansible -i ./all-in-one bootstrap-servers

我得到这个错误:

TASK [openstack.kolla.packages : Install packages] *****************************************************
[WARNING]: Updating cache and auto-installing missing dependency: python3-apt
fatal: [localhost]: FAILED! => {"changed": false, "msg": "python3-apt must be installed and visible from /root/my_venv/bin/python."}

我在谷歌上搜索了一下,但没有找到任何有用的东西,而且我对ansible、openstack和linux都是超级新手。最好的做法是什么?
我预计结果会是这样的:

PLAY RECAP *********************************************************************************************
localhost: ok=8    changed=0    unreachable=0    **failed=0**   skipped=3    rescued=0    ignored=0
wgeznvg7

wgeznvg71#

一个python * 软件包 * 可以安装在多个位置。不同的 * 虚拟环境 * 被配置为搜索不同的位置集,因此这些虚拟环境中的一些可能能够找到一个软件包,而另一些可能不能。
以默认方式创建的虚拟环境将无法找到全局安装的软件包。这是设计使然。
您的特定虚拟环境/root/my_venv/必须能够找到python3-apt。即使它是全局安装的,虚拟环境也不会找到它。
一种方法是激活虚拟环境和pip3 install包。它将只对该虚拟环境可见。
另一种方法是使用apt install全局安装软件包,然后创建您的虚拟环境以继承全局软件包like this

e3bfsja2

e3bfsja22#

在Linux中,已安装的应用程序必须对某个目录“可见”,用户才能访问它。这意味着应用程序必须位于用户的PATH环境变量中列出的目录中。

相关问题