conda 环境激活后,pip 版本没有切换到你预期的版本。这是 Windows 上使用 Conda 时一个比较常见的困扰。原因在于,环境变量的优先级问题。
-
Conda 环境机制: Conda 环境通过修改环境变量来实现 Python 和包的隔离。当你激活一个环境时,Conda 会修改 PATH 变量,将该环境的 Python 路径放在前面,从而使系统优先使用该环境的 Python。
-
pip 的路径问题: pip 安装时也会将 pip 的可执行文件添加到 PATH 环境变量中。通常,base 环境的 pip 路径会先被添加到 PATH 变量中,然后 conda 环境激活时,conda 环境的 pip 路径会添加到 PATH 变量的较前面,
-
当前路径: 你在 Anaconda Prompt 中,当前路径停留在 C:\ProgramData\Miniconda3\Scripts,而不是 python38 环境的 Scripts 文件夹。
-
优先级问题: 当你在 (python38) 环境下输入 pip 时,系统会按照 PATH 环境变量的顺序查找 pip.exe,由于你当前路径是 C:\ProgramData\Miniconda3\Scripts,所以优先找到了 base 环境的 pip.exe,即使你已经激活了 python38 环境。
解决方案:
基于以上分析,以下是修正的解决方案,重点在于你需要在 python38 环境下使用正确的 pip 路径:
方案一:使用完整的 pip 路径 (推荐,最可靠)
这是你最应该采用的方法,确保使用正确的 pip.exe:
-
确定 python38 环境的 pip 路径:
-
使用完整路径调用 pip:
-
当你需要在 python38 环境中安装包时,使用以下命令:
"C:\ProgramData\Miniconda3\envs\python38\Scripts\pip.exe" install <package_name>
content_copydownload
Use code with caution.将 <package_name> 替换为你需要安装的包。
例如:"C:\ProgramData\Miniconda3\envs\python38\Scripts\pip.exe" install numpy
content_copydownload
Use code with caution.
-
方案二:进入 python38 环境的 Script 目录 (可行但稍显麻烦)
这种方法不推荐,但是可以让你直接使用 pip 命令:
-
激活 python38 环境: 你已经激活了。
-
切换到 python38 环境的 Scripts 目录:
cd C:\ProgramData\Miniconda3\envs\python38\Scripts
content_copydownload
Use code with caution. -
使用 pip 命令: 现在你可以直接使用 pip 命令安装包,它会使用 python38 环境中的 pip.exe:
pip install <package_name>
content_copydownload
Use code with caution.例如:
pip install numpy
content_copydownload
Use code with caution. -
注意: 当你操作完成后,需要使用 cd C:\ProgramData\Miniconda3\Scripts 返回到 Miniconda 根目录,否则会影响后续操作。