Conda 使用 .local 包

Gid*_*per 10 pycharm anaconda conda

我觉得这是一个基本问题,所以请随时引导我访问任何资源:

对于本地中存在的任何包,我的 conda 环境在 yaml 文件中指定的包版本之前使用 .local。如果可能的话,如何让它忽略 .local?

我正在使用 PyCharm 和 Ubuntu。

如果我可以提供更多信息,请告诉我。

Stu*_*erg 12

我认为所有 python 解释器都会先使用site.USER_SITE其他包,默认情况下该位置是~/.local/lib/pythonX.Y/site-packages. 那是因为site.USER_BASE默认为~/.local.

但幸运的是,您可以site.USER_BASE使用环境变量重写为其他值:PYTHONUSERBASE。由于您想完全禁用它,因此您应该提供一个非空的无意义值。例如:

$ export PYTHONUSERBASE=intentionally-disabled
$ python -c "import site; print(site.USER_SITE)"
intentionally-disabled/lib/python3.7/site-packages
Run Code Online (Sandbox Code Playgroud)

文件:

为了确保每次使用该 conda 环境时都设置该变量,您可以在 中创建一个激活后 shell 脚本${CONDA_PREFIX}/etc/conda/activate.d/,如本答案中所述。

cat > ${CONDA_PREFIX}/etc/conda/activate.d/disable-PYTHONUSERBASE.sh << EOF
#!/bin/bash
export PYTHONUSERBASE=intentionally-disabled
EOF

chmod +x ${CONDA_PREFIX}/etc/conda/activate.d/disable-PYTHONUSERBASE.sh
Run Code Online (Sandbox Code Playgroud)

但坦率地说,我认为最简单的选择是永远不要使用~/.localpython 包。只需移动或删除它们即可。它会导致这样的问题。我只在它引起问题时才遇到它——我从未见过任何人真正从使用该 Python 功能中受益。我希望他们默认禁用它。


编辑:如果您的 IDE 允许您指定传递给 python 本身的标志,那么您可以使用python -s选项