激活 conda 环境并运行
which python
后,我得到以下内容
/usr/local/bin/python
正如你所看到的,它没有使用应该在conda环境中的python,即
/Users/zeus/opt/anaconda3/envs/po/bin/python
如何解决这个问题?我使用的是MacOS
这是我的
conda info -a
# conda environments:
#
base /Users/zeus/opt/anaconda3
discoe /Users/zeus/opt/anaconda3/envs/discoe
po * /Users/zeus/opt/anaconda3/envs/po
py38 /Users/zeus/opt/anaconda3/envs/py38
test /Users/zeus/opt/anaconda3/envs/test
sys.version: 3.9.7 (default, Sep 16 2021, 08:50:36)
...
sys.prefix: /Users/zeus/opt/anaconda3
sys.executable: /Users/zeus/opt/anaconda3/bin/python
conda location: /Users/zeus/opt/anaconda3/lib/python3.9/site-packages/conda
conda-build: /Users/zeus/opt/anaconda3/bin/conda-build
conda-content-trust: /Users/zeus/opt/anaconda3/bin/conda-content-trust
conda-convert: /Users/zeus/opt/anaconda3/bin/conda-convert
conda-debug: /Users/zeus/opt/anaconda3/bin/conda-debug
conda-develop: /Users/zeus/opt/anaconda3/bin/conda-develop
conda-env: /Users/zeus/opt/anaconda3/bin/conda-env
conda-index: /Users/zeus/opt/anaconda3/bin/conda-index
conda-inspect: /Users/zeus/opt/anaconda3/bin/conda-inspect
conda-metapackage: /Users/zeus/opt/anaconda3/bin/conda-metapackage
conda-pack: /Users/zeus/opt/anaconda3/bin/conda-pack
conda-render: /Users/zeus/opt/anaconda3/bin/conda-render
conda-repo: /Users/zeus/opt/anaconda3/bin/conda-repo
conda-server: /Users/zeus/opt/anaconda3/bin/conda-server
conda-skeleton: /Users/zeus/opt/anaconda3/bin/conda-skeleton
conda-token: /Users/zeus/opt/anaconda3/bin/conda-token
conda-verify: /Users/zeus/opt/anaconda3/bin/conda-verify
user site dirs:
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: po
CONDA_EXE: /Users/zeus/opt/anaconda3/bin/conda
CONDA_PREFIX: /Users/zeus/opt/anaconda3/envs/po
CONDA_PREFIX_1: /Users/zeus/opt/anaconda3
CONDA_PROMPT_MODIFIER: (po)
CONDA_PYTHON_EXE: /Users/zeus/opt/anaconda3/bin/python
CONDA_ROOT: /Users/zeus/opt/anaconda3
CONDA_SHLVL: 2
CURL_CA_BUNDLE: <not set>
DISCOE_PATH: /Users/zeus/Project/discoe
PATH: /Users/zeus/opt/anaconda3/bin:/Users/zeus/.poetry/bin:/Users/zeus/.nvm/versions/node/v16.13.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/zeus/opt/anaconda3/envs/po/bin:.:/Users/zeus/.local/bin:/Users/zeus/.local/bin
REQUESTS_CA_BUNDLE: <not set>
SSL_CERT_FILE: <not set>
这就是我的 $PATH
/Users/zeus/.poetry/bin:/Users/zeus/.nvm/versions/node/v16.13.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/zeus/opt/anaconda3/envs/po/bin:.:/Users/zeus/.local/bin:/Users/zeus/.local/bin
我通过此命令激活我的 conda 环境
conda activate po
要解决此问题,您需要完全停用所有 Conda 环境。这不仅包括您的特定项目环境,还包括基本(默认)环境。
步骤如下:
conda deactivate
conda deactivate
现在,您应该完全脱离所有 Conda 环境。
这背后的原因是Conda和其他Python环境管理器操纵系统路径。当您激活 Conda 环境时,它会将活动环境的二进制目录的路径添加到您的系统
PATH
。因此,当您处于 Conda 环境中时,该环境中安装的 Python 可执行文件和脚本优先于系统范围内安装的可执行文件和脚本。这就是为什么有必要停用所有 Conda 环境以确保您使用系统范围的 Python。
更多详情,可以参考这篇文章:https://towardsdatascience.com/python-the-system-path-and-how-conda-and-pyenv-manipulate-it-234f8e8bbc3e
问题是在
/usr/local/bin
路径之前的 $PATH
中有 anaconda3
。这可能来自您的 ~/.zshrc
/~/.bashrc
/~/.profile
文件,但 $PATH
正在被修改,以便 Anaconda bin
文件夹位于 /usr/local/bin
之后。
同样的问题并已解决。
转到您的 usr 目录并找到“/home/usr/.bash_profile”。我的显示:
PATH=$PATH:$HOME/.local/bin:$HOME/bin
导出路径
插入以下行并将“/home/usr/.bash_profile”文件另存为:
PATH=“/home/shanzhang/anaconda3/bin:$PATH”
PATH=$PATH:$HOME/.local/bin:$HOME/bin
导出路径
问题已解决。