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

简介: 为什么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项目管理的正确方式。

目录
相关文章
|
2天前
|
存储 NoSQL Redis
在Python Web开发过程中,为什么Redis运行速度快
【5月更文挑战第15天】Redis在Python Web开发中运行速度快,原因包括:1) 丰富数据类型满足多样化需求;2) 简单数据模型提升查询效率;3) 单线程模型结合非阻塞I/O实现高效处理;4) 持久化机制保证数据安全;5) 二进制协议与管道技术优化网络通信。这些因素共同确保Redis能处理大量请求并保持高性能。
24 1
|
2天前
|
数据采集 Web App开发 数据处理
Lua vs. Python:哪个更适合构建稳定可靠的长期运行爬虫?
Lua vs. Python:哪个更适合构建稳定可靠的长期运行爬虫?
|
2天前
|
数据采集 iOS开发 MacOS
Python及Pycharm安装教程
Python及Pycharm安装教程
27 0
|
2天前
|
缓存 Shell 开发工具
[oeasy]python0016_在vim中直接运行python程序
在 Vim 编辑器中,可以通过`:!`命令来执行外部程序,例如`:!python3 oeasy.py`来运行Python程序。如果想在不退出Vim的情况下运行当前编辑的Python文件,可以使用`%`符号代表当前文件名,所以`:!python3 %`同样能运行程序。此外,可以使用`|`符号连续执行命令,例如`:w|!python3 %`会先保存文件(`w`)然后运行Python程序。这样,就可以在不离开Vim的情况下完成编辑、保存和运行Python程序的流程。
19 0
|
2天前
|
Python
【python】在pycharm创建一个新的项目
【python】在pycharm创建一个新的项目
371 0
|
2天前
|
SQL DataWorks 安全
DataWorks产品使用合集之DataWorks资源里python运行时候,查看中途打印日志如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
26 0
|
2天前
|
测试技术 Python
python运行集成测试
【4月更文挑战第22天】
11 1
|
2天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
22 3
|
2天前
|
XML 测试技术 持续交付
python运行集成测试
【4月更文挑战第21天】
22 2
|
2天前
|
人工智能 JSON 机器人
【Chat GPT】用 ChatGPT 运行 Python
【Chat GPT】用 ChatGPT 运行 Python