Conda使用.local包

2022-03-13 00:00:00 conda pycharm anaconda

问题描述

我觉得这是一个基本问题,请随时告诉我任何资源:

对于存在于本地的任何包,我的Conda环境使用.local先于在YAML文件中指定的包版本。如果可能,如何使其忽略.local?

我正在使用PyCharm和Ubuntu。

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

谢谢。

python

我认为所有推荐答案解释器都会先使用来自site.USER_SITE的包,默认情况下该位置是~/.local/lib/pythonX.Y/site-packages。这是因为site.USER_BASE默认为~/.local

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

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

单据:

  • https://docs.python.org/3/library/site.html#site.USER_BASE
  • https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUSERBASE
要确保每次使用Conda环境时都设置变量,您可以在${CONDA_PREFIX}/etc/conda/activate.d/中创建激活后shell脚本,如this answer中所述。

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
但坦率地说,我认为最简单的选择是永远不要对python包使用~/.local。只需移动或删除它们即可。它会引起这样的问题。我只在它引起问题时遇到过它--我从未见过任何人真正从使用Python特性中受益。我希望他们只在默认情况下禁用它。


编辑:如果您的IDE允许您指定传递给python本身的标志,则可以使用the python -s option。

相关文章