pycharm 的虚拟环境【陷阱】,你中招了吗?

最近有小伙伴遇到了明明安装了 python 第三方库,但是在 pycharm 当中却导入不成功的问题。。

一直以来,也有不少初学 python 的小伙伴,一不小心就跳进了虚拟环境和系统环境的【陷阱】中。。

本文就基于此问题,来说说在 pycharm 当中如何使用系统环境、虚拟环境。

pycharm 当中,每一个项目在运行时,都需要指定一个 python 环境,比如 python3.7,python3.8 等。

1、你的项目是否用的虚拟环境?

在 pycharm 创建 project 时,需要选择 python 环境,默认是创建一个虚拟环境。

很多小伙伴,这一步没有去处理。自然而然的就会创建一个虚拟环境而不自知。

如下图所示:

点开之后,默认选中的虚拟环境。

虚拟环境创建成功之后,在项目下面会有一个 venv 目录。

如果你的项目下面有这个目录,那么说明你用的就是虚拟环境。

在 pycharm 当中,执行这个项目的代码时,会自动使用虚拟环境中的第三方库。

如果虚拟环境中没有,则会导入失败。

所以本文一开头遇到的问题,其实就是这个原因。

第三方库安装在本地 python 环境中,而运行代码时,使用的是虚拟环境中的。

对于 python 初学者,不要用虚拟环境,不要用虚拟环境,不要用虚拟环境!

先用本地系统环境好好学会 python,以后再考虑使用虚拟环境。

2、项目环境切换 - 如何从虚拟环境切换到本地环境

那么,已经不小心掉到了这个【陷阱】里的同学,想将项目从虚拟环境,切换到本地 python 环境,怎么办呢?

在【File -> Settings -> project:你的项目名称 -> python interpreter】中,可以指定当前项目的 python 环境。

点击 Show All 会显示所有的环境,如下图。如果环境路径中带有【venv】表示为虚拟环境

我们要选择本地的 python 环境,而不是虚拟环境。

环境切换成功之后,【External Libraries】下会显示本地 python 环境路径。

在 pycharm 当中运行时,就会使用本地环境去执行代码了。。

在编写 python 代码时,导包也是从这个 python 环境下面去导。

3、pycharm 中,python 虚拟环境中第三方库管理

一般在开发 python 项目时,会使用虚拟环境。

虚拟环境的目的是,项目与项目之间的 python 环境隔离,项目所使用的 python 第三方库隔离。

如果你的项目当前正在虚拟环境当中,如何进入虚拟环境安装第三方库呢?

虚拟环境中安装和卸载第三方库的 2 种方式。

3.1)在 pycharm 的终端安装和卸载。

第一步:将 pycharm 的 Terminal 终端从 powershell 更换成 cmd.exe。(windows 环境)

这种情况下,我们需要手动执行命令,进入虚拟环境当中。

如果将 windows powershell 换成 cmd.exe,那么打开 Terminal 之后,就会自动进入虚拟环境当中。

这样就不用每次去切换了。

切换步骤:【File - Settings - Tools - Terminal - Shell path - 选择有 cmd.exe 的】

关掉之前打开的 Terminal,重新打开一个。就会自动切换到虚拟环境当中。

第二步:使用 pip 命令进行安装和卸载即可。

3.2)在项目的解释器配置界面安装和卸载第三方库

第一步:进入项目解释器配置界面。

操作步骤:【File - Settings - Project:你的项目名称 - Python Interpreter】

第二步:点 + 进入安装第三方库界面。

要卸载已安装的包

关于第三方库安装时很慢或者读取超时问题处理:

可以在安装第三方库时使用以下国内源:

  1. 阿里云 http://mirrors.aliyun.com/pypi/simple/
  2. 豆瓣(douban) http://pypi.douban.com/simple/
  3. 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  4. 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

pip 安装命令为:

pip install XXXX -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

pycharm 的虚拟环境【陷阱】,你中招了吗?

 

上一篇:pycham 创建django项目提示pip错误


下一篇:Pycharm 运行程序后如何 如何查看变量的值(不通过debug的方式)