Python的venv虚拟环境创建成功,但是pip install安装第三方库却还是安装在系统Python里,别慌,一文带你解决这个问题
开发项目时,使用Python虚拟环境开发是必须的,但是在创建虚拟环境的时候,会遇到一些问题。
这里有一个很典型的问题:在终端里面创建成功了Python的venv虚拟环境,并且使用pip install安装了第三方库。但是之后到全局去查看,使用pip list这个命令去查看第三方库,发现刚刚安装的第三方库全部都在系统级Python里面。
明明我使用了虚拟环境并且在虚拟环境里进行安装的,为什么安装的第三方库还在系统级Python里面呢?
解释
为什么还安装在系统级Python里面呢?
因为虚拟环境和系统级Python,它都是可以进行Python解释的,都有pip包那么它们总要有个先后顺序吧。如果仅仅是使用pip install来安装第三方库,那么Python的顺序可能是系统级Python在前面,也有可能是虚拟环境的Python在前面。所以我们可以先通过一个命令来查看:
where pip
这个命令会输出当前pip所在的位置.如果你创建了一个虚拟环境,那么加上系统级Python一共就是两个,所以输出可能会像下面这样:
C:/XXX路径
D:/XXX路径
或者
D:/XXX路径
C:/XXX路径
假设你的系统级Python安装在D盘,你的虚拟环境是C盘桌面上的一个文件夹里创建的,那么输出就有可能像上面这两种形式。
在这种情况下,如果你仅仅用pip install,那么它默认就会使用最前面的那个pip去创建。因为系统肯定是不知道现在你想用哪个pip,所以这个行为是默认的,用最上面的那个路径下的pip。
这样就会出现一种情况,那就是如果是你的系统级Python在上面,那么它默认直接用你的系统级Python去安装第三方库,那么就会装错位置。
解决方法
要解决这个问题,我们推荐一种最好的做法,那就是使用python -m命令。
使用python -m命令能确保你使用当前激活的Python解释器来执行指定的模块。
在查阅资料之后,我也了解到了这是 Python 官方推荐的最佳实践之一。
完整的命令如下:
python -m pip install 需要安装的第三方库的名称
注意:创建完虚拟环境之后,记得一定要先激活需要使用虚拟环境,再使用这个命令去安装哦。
好了,以上就是关于这个问题解决产生的原因和解决的方案了,关于虚拟环境的构建可以参考我以前的那篇博客(关于Python使用venv创建虚拟环境及执行创建命令没有反应的应对方式)。
同时,也欢迎在评论区留言,我们一起进步!
更多推荐



所有评论(0)