解析 'conda'、'sudo' 和 'global' python 路径

Resolving 'conda', 'sudo', and 'global' python paths

一般来说,我对 conda 和 venvs(以及 s/o)都是业余爱好者,所以我希望有人能给我解释一下如何处理这 3 条路径。

Conda/Global 例子

我在 conda 环境中并尝试安装 tensorrt 及其 python 绑定。它作为一个 debian 软件包提供,所以我 'apt-get' 它。我假设这将在全球范围内安装它,我的 conda venv 将能够 'see' 它,但事实并非如此。它仅在停用我的环境后可用。如何启用此软件包以从我的 conda 环境中使用?

Conda/Sudo 示例

我在 conda env 中,并希望安装一个 python 软件包,它不是 debian 软件包,而是一个 setup.py。我希望全局安装它(适用于所有环境,虚拟和非)和 运行 它的 setup.py 和 'sudo python'。这解析为 不同的 路径,在我的虚拟环境或本地路径中不可见。与目标完全相反。如何让这个包对我的 conda venv 可见?

感谢任何帮助。

您将许多打包管理系统混合在一起(apt、conda、pip)。此外,您的问题违背了使用虚拟环境的目的。你应该只在安装 Python 软件包时使用 sudo,当你确切地知道你在做什么时。

我将为您提供一些解决方案的指南,但我建议您首先整理您的开发环境,因为这只会导致更多的麻烦。决定一件事并坚持下去。
如果您不想使用虚拟环境的好处,也许您不应该使用虚拟环境。


我要写python3。对您来说,它可能被称为 pypy3python。您可以使用 Linux 上的 which python3 和 Windows 上的 where python3 获得 python3 命令的 PATH

安装包时。它们放在 python3 -m site 中列出的文件夹之一中。你可以激活你的虚拟环境,看到文件夹不一样了。

您会看到您当前的工作目录已自动添加。您可以看到每个用户都有自己的 site-packages 文件夹,并且有一些公共文件夹 /usr/lib/python... 这是您的 Python 解释器的一部分。它们包含基本功能,通常您不会在其中安装自定义包。

如何将 Python 模块安装到自定义路径?
我正在链接另一个 Whosebug 问题,因为它各不相同。 Install a Python package into a different directory using pip?
请使用 Conda 进行自己的研究。

如何让我的程序使用新路径中定义的 Python 模块?
使用 PYTHONPATH.
当您执行 python 时,它将查找 python -m site 文件夹中列出的所有模块。您可以添加另一个文件夹,例如:PYTHONPATH=/home/ python -m site


我省略了很多信息,这不是 wiki 或类似的。这只是一个导致解决方案的答案,但它不是一个很好的解决方案。