Conda 环境中的站点包位于何处?

在 Conda 环境中安装包之后,我想对该包中的代码进行一些更改。

在哪里可以找到包含已安装包的 site-packages目录?

我有一个 Anaconda Python 2.7 基地发行版,但是没有找到目录:

/Users/username/anaconda/lib/python2.7/site-packages
207733 次浏览

您可以导入模块并检查 module.__file__字符串。它包含相关源文件的路径。

或者,您可以读取模块文档中的 File标记,可以使用 IPython 中的 help(module)module?访问该模块文档。

您还可以在命令行中键入“ conda list”。这将打印出带有版本号的已安装模块。文件结构中的路径将打印在列表的顶部。

Linux 用户可以找到所有已安装软件包的位置,如下所示:

pip list | xargs -exec pip show

更新2022-03-21,删除 pip 列表输出顶部不需要的表标题:

pip list | tail -n +3 | xargs -exec pip show

在 python shell 中运行以下命令:

from distutils.sysconfig import get_python_lib
print(get_python_lib())

我安装了 miniconda 并在 /miniconda3/pkgs中找到了所有已安装的软件包

你可在以下网页找到已安装的软件包:

anaconda's directory / lib / site_packages

我就是在那里找到我的。

我在我的公寓环境中遇到了这个问题。原因是软件包已经被安装到两个不同的文件夹中,其中只有一个可以被 Python 可执行文件识别。

~/anaconda2/envs/[ 我的女儿]/site-package ~/anaconda2/envs/[ 我的女儿]/lib/python2.7/site-package

一个经过验证的解决方案是在命令行中使用以下步骤将这两个文件夹添加到 python 路径(请用您自己的环境替换[ 我的女儿]) :

  1. 启动[ 我的女儿]。
  2. Conda-development ~/anaconda2/envs/[ 我的女儿]/site-package
  3. Conda-development ~/anaconda2/envs/[ 我的女儿]/lib/python2.7/site-package (conda-development 是添加一个。Pth 文件添加到该文件夹,以便 Python 可执行文件在搜索包时知道该文件夹。)

为了确保这一点,请尝试在这个环境中激活 Python,并导入未找到的包。

至少对于 Miniconda (我假设对于 Anaconda 也是如此) ,在环境文件夹中,包被安装在一个名为 conda-meta 的文件夹中。

也就是说。

C: 用户用户名 Miniconda3 envs 环境名 conda-meta

如果安装在基本环境中,则位置为:

C: 用户用户名 Miniconda3 pkgs

还有一个使用解释器的选项:

import site; print(''.join(site.getsitepackages()))

使用终端/提示符:

python -c "import site; print(''.join(site.getsitepackages()))"

此外,在这种情况下,您可以很容易地打印一个目录(如果有多个)使用自己的过滤器

位置应该是(在 Linux 系统中) :

home/<USERNAME>/anaconda3/envs/<ENV_NAME>/lib/python<VERSION>/site-packages/

Conda CLI 针对环境 的一般做法如下:

conda run -n foo python -m site

对于我的 基地环境来说,它看起来像:

$ conda run -n base python -m site


sys.path = [
'/Users/mfansler/miniconda3/lib/python3.8',
'/Users/mfansler/miniconda3/lib/python38.zip',
'/Users/mfansler/miniconda3/lib/python3.8/lib-dynload',
'/Users/mfansler/miniconda3/lib/python3.8/site-packages',
]
USER_BASE: '/Users/mfansler/.local' (exists)
USER_SITE: '/Users/mfansler/.local/lib/python3.8/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

答案是 sys.path列表中的 site-packages