uv与conda环境冲突,无法使用uv环境,安装包之后出现ModuleNotFoundError: No module named ‘xxx‘等解决方法
问题发现
在使用uv创建环境之后,发现pip list的列表依然是base环境里的,uv创建的环境无法识别
创建环境之后,发现依然有base
样式,说明依然在conda环境中
首先退出conda环境conda deactivate
退出之后,进入环境.\.venv\Scripts\activate
,再用pip list发现依然是base目录的pip包
检查位置
这个时候首先检查python和pip的位置分别在哪里
Get-Command python
Get-Command pip
CommandType Name Version Source
----------- ---- ------- ------
Application python.exe 3.12.3.0 D:\Computer\.venv\Scripts\python.exe
Application pip.exe 24.0.0.0 D:\Computer\Anaconda\Anaconda\Scripts\pip.exe
发现source两个的指向不相同
然后因为我的python在正确的环境中了,当我调用python -m pip list
的时候,却显示不存在pip
我查看目录发现却是不存在,难道是uv的问题吗?
查看uv
发现uv包的lib文件夹不存在pip包,也就是不知道什么原因,pip不见了
这个时候怀疑uv和conda冲突问题,但是选择另外一种方式
转变方向
我们使用python创建veuv
python -m venv .venv
再使用
pyhthon -m pip list
(.venv) PS D:\Computer\脚本\CSDN> pip list
Package Version
------- -------
pip 24.0[notice] A new release of pip is available: 24.0 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
可以显示,说明是uv和conda冲突,python本身没有问题
所以再创建环境之前,需要首先解除conda环境的影响,而不是再conda中使用uv
问题解析
这通常是由于 Anaconda 在安装时,将其路径(如 D:\Computer\Anaconda\Anaconda\Scripts)添加到了你 Windows 系统的全局 PATH 环境变量中。
当你运行.\.venv\Scripts\activate
时,这个激活脚本会尝试把你虚拟环境的 Scripts 目录临时添加到当前终端会话的 PATH 变量的最前面。理论上,此时当你输入 pip,系统应该会首先在 .venv\Scripts 里找到它。
但从结果来看,Anaconda 的路径优先级更高,或者因为某些 PowerShell 的配置,导致系统仍然找到了 Anaconda 的 pip。