为什么Python能运行但是PyCharm画红线(二)

在昨天的文章里面,我们讲到了因为工作区的原因导致PyCharm在导入模块时提示找不到,但是却又能在Python运行。

今天我们讲另一种情况,也会导致相同的问题。

这种情况多发于我们直接从PyCharm中创建项目时的情况。

我们打开PyCharm,选择 CreateNewProject,填写项目路径创建项目,如下图所示

项目创建完成以后,我们创建一个main.py文件,内容如下:

import requests
resp = requests.get('http://exercise.kingname.info/exercise_requests_get.html').text
print(resp)

如下图所示:

此时, requests会被画上波浪线。这是正常情况,因为此时我们并没有安装这个第三方库,所以PyCharm必定找不到requests。

好了,那么我们来安装requests:

现在回到PyCharm里面,你会发现,为什么requests下面还有红色波浪线?可以这个第三方库明明安装成功了啊!

此时,如果你在PyCharm里面运行这个main.py文件,会看到PyCharm报错,如下图所示。

但是,如果你在终端里面运行,却发现代码毫无问题,如下图所示:

那么,PyCharm又闹什么幺蛾子了吗?

实际上这是功能不是bug。当我们在新版的PyCharm里面创建工程的时候,PyCharm会自动为这个工程创建一个虚拟环境,如下图所示。

在PyCharm中,我们也可以看到PyCharm是使用虚拟环境的Python来运行main.py的,如下图所示:

这个虚拟环境和系统的Python环境是隔离开的。当我们直接在终端里面安装第三方库的时候,安装到的是系统的Python环境,而PyCharm自动创建的虚拟环境的Python里面并没有安装requests,所以会出现找不到的问题。

这个问题要解决实际上也非常简单。打开PyCharm最下面的 Terminal选项卡,并在这个弹出的终端里面安装requests,如下图所示

安装完成以后,再使用PyCharm运行main.py,发现一切都正常了。如下图所示。

最后,希望你不要抱怨PyCharm自动为你创建虚拟环境这个事情。在Python开发中,本来就应该这样做,不同的项目使用不同的虚拟环境,使得所有依赖互相隔离,这才是Python项目管理的正确方式。

本文分享自微信公众号 - 未闻Code(itskingname)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券