Conda使用.local包
问题描述
我觉得这是一个基本问题,请随时告诉我任何资源:
对于存在于本地的任何包,我的Conda环境使用.local先于在YAML文件中指定的包版本。如果可能,如何使其忽略.local?
我正在使用PyCharm和Ubuntu。
如果我能提供更多信息,请告诉我。
谢谢。
python
我认为所有推荐答案解释器都会先使用来自site.USER_SITE
的包,默认情况下该位置是~/.local/lib/pythonX.Y/site-packages
。这是因为site.USER_BASE
默认为~/.local
。
site.USER_BASE
将site.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_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。
相关文章