python - 普通终端和 PyCharm 终端的区别?
问题描述
我电脑上的常规终端和我在 PyCharm 中打开新项目时得到的终端有什么区别?
如果在新项目中它是 Conda 解释器而不是常规 Python 解释器,你的答案会改变吗?
解决方案
我电脑上的常规终端和我在 PyCharm 中打开新项目时得到的终端有什么区别?
不同之处在于 PyCharm 中的终端仿真器使用 API 与 OS 进程接口。OS shell 进程由 PyCharm 进程启动和拥有,而不是由用户在操作系统上直接启动。(有关有时可互换术语的消歧,另请参阅终端、控制台、Shell 和命令行之间的区别是什么?)。
PyCharm 主要在 Java 上实现(集成了其他语言的一些功能,如 CPython 中的 Python 调试器)。终端是与 IDE 集成的Java 插件。如以下屏幕截图所示File
>
Settings
>
Plugins
>
Terminal
。
PyCharm 中的终端仿真器插件可以集成多个 shell(例如 “Windows PowerShell、命令提示符 cmd.exe、sh、bash、zsh、csh 等”)。以下示例显示了cmd.exe
在 PyCharm 终端模拟器插件中打开的几个终端选项卡。
在 Windows 上,如果您cmd.exe
在 PyCharm 中启动终端后打开任务管理器,您将看到如下一个屏幕截图所示,是cmd.exe
由 PyCharm 进程启动的终端。在屏幕截图的底部,还显示了用户在操作系统上启动的本机控制台进程。
每个终端进程是独立的,使用命令提示符为每个终端提供 2 个进程一个Console Window Host
进程和一个Windows Command Processor
进程。但更值得注意的是,您还有一个winpty-agent.exe
与启动winpty相对应的过程。所以这就提出了一个问题,什么是 winpty 以及它是如何工作的?
解决最后一个问题需要复杂的操作系统级别的答案,但这仍然不够,因为您必须针对每种操作系统上的每种不同终端组合(zsh、cmd、bash 等)提出并回答相同的问题(Linux、Windows 等)。PyCharm 终端仿真器插件抽象了这些细节,用户可以假设所选择的操作系统终端功能和属性由 PyCharm 终端仿真器插件保留。通过转到 IDE,可以在 IDE 中对终端进行一些配置File
>
Settings
>
Tools
>
Terminal
。
如果它是 Conda 解释器而不是常规 Python 解释器,你的答案会改变吗?
不,因为解释器是可以在终端内启动的进程。所以后一个问题独立于前一个问题。
推荐阅读
- nearprotocol - Legder Nano S 无法有效授权
- python - 如何从任何地方调用的 Python 脚本中读取文件
- mysql - 将excel生成的日期格式转换为SQL
- sql - 来自文本框的 SQL 注入
- python - 一种“合并”数据帧的方法,具有匹配值但复杂的交互
- python - 使用 ElementTree 从 XML 中删除整个标签
- reactjs - 世博会谷歌地图位置地理编码自动完成
- html - Django 不接受包含在表单标签中的图像提交、方法和编码类型,但浏览器控制台声称它丢失了
- java - 可以在没有 Web 服务的情况下实现微服务吗?
- bash - Git Bash 的问题