我觉得这是一个基础问题,如有需要,请随时指导我参考任何资源:
我的conda环境在本地存在任何包的情况下,会使用`.local`而不是yaml文件中指定的包版本。如果可能的话,我该如何忽略`.local`呢?
我正在使用PyCharm和Ubuntu。
如果需要更多信息,请告诉我。
site.USER_SITE
中的包,而默认情况下该位置是~/.local/lib/pythonX.Y/site-packages
. 这是因为site.USER_BASE
默认为~/.local
。PYTHONUSERBASE
来覆盖site.USER_BASE
的值。由于你想要完全禁用它,应该提供一个非空的无意义值。例如:$ export PYTHONUSERBASE=intentionally-disabled
$ python -c "import site; print(site.USER_SITE)"
intentionally-disabled/lib/python3.7/site-packages
文档:
为确保每次使用 conda 环境时都设置了该变量,您可以在 ${CONDA_PREFIX}/etc/conda/activate.d/
中创建一个后激活 shell 脚本,具体步骤请参见此答案。
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
说实话,我认为最简单的选项是永远不要使用~/.local
存储Python包。只需将其移动或删除即可。这会导致像这样的问题。只有在它引起问题时我才遇到过它--我从未见过任何人真正受益于使用那个Python功能。我希望他们默认情况下禁用它。
编辑:如果你的IDE允许你指定传递给Python本身的标志,那么你可以使用python -s
选项。
~/.local
,对吗?只需删除其中安装的软件包即可。我想删除该文件夹可能会引起问题。 - Python Developer~/.local
的用途。这个答案声称它不仅仅是为Python而存在的。 - Stuart BergPYTHONNOUSERSITE
(参见https://docs.python.org/3/using/cmdline.html#envvar-PYTHONNOUSERSITE),它具有与python -s
相同的效果(https://docs.python.org/3/library/site.html#site.ENABLE_USER_SITE),而不是将PYTHONUSERBASE
设置为一些无意义的值。 - Stefan