【问题标题】:Difference between regular terminal and PyCharm terminal?普通终端和 PyCharm 终端的区别?
【发布时间】:2023-03-13 07:33:02
【问题描述】:

我电脑上的常规终端和我在 PyCharm 中打开新项目时得到的终端有什么区别?

如果在新项目中使用 Conda 解释器而不是常规 Python 解释器,您的答案会改变吗?

【问题讨论】:

  • 我认为 PyCharm 使用默认的系统终端,所以应该和正常的一样。请注意,显示代码执行的终端是不同的,因为它是运行 python 代码的subprocess 实例。
  • 抱歉,我看错了。重新打开。

标签: python terminal pycharm


【解决方案1】:

您可以检查/配置在 Pycharm 中使用的 shell 下

设置→工具→终端→应用程序设置→Shell路径

默认情况下,这应该是您的标准系统外壳。

【讨论】:

  • 抱歉,什么是外壳?我问的是终端
  • @MoranReznik 只是将这些术语视为在此上下文中相同。
  • 好的,你。你说默认情况下它应该是相同的 - 还有哪些其他选项?
  • @MoranReznik 例如,当我在 Windows 下使用 Pycharm 时,我将 shell 更改为 bash.exe。
  • 但在所有其他方式下默认情况下是否相同,不仅是 shell 类型?例如,PATH 变量是否相同?
【解决方案2】:

我电脑上的常规终端和我在 PyCharm 中打开新项目时得到的终端有什么区别?

区别在于 PyCharm 内部的 Terminal emulator 使用 API 与 OS 进程接口。 OS shell 进程由 PyCharm 进程启动和拥有,而不是由用户在操作系统上直接启动。 (有关有时可互换术语的消歧,另请参阅What is the difference between Terminal, Console, Shell, and Command Line?)。

PyCharm 主要在 Java 上实现(集成了其他语言中的一些功能,例如 CPython 中的 Python 调试器)。与 IDE 集成的 Java 中的 Terminal is a plugin。如以下截图所示File>Settings>Plugins>Terminal。

PyCharm 中的终端模拟器插件可以集成多个 shell(例如 “Windows PowerShell、命令提示符 cmd.exe、sh、bash、zsh、csh 等”)。以下示例显示了在 PyCharm 终端模拟器插件中打开的几个 cmd.exe 终端选项卡。

在 Windows 上,如果您在 PyCharm 中启动 cmd.exe 终端后打开任务管理器,您将看到如下一个屏幕截图所示,是由 PyCharm 进程启动的 cmd.exe 终端。在屏幕截图的底部,还显示了用户在操作系统上启动的本机控制台进程。

每个终端进程是独立的,使用命令提示符为每个终端提供 2 个进程,一个 Console Window Host 进程和一个 Windows Command Processor 进程。但更值得注意的是,您还有一个winpty-agent.exe 进程,对应于启动winpty。所以这就提出了一个问题,what is winpty and how does it work?

解决最后一个问题需要复杂的操作系统级别的答案,但这仍然不够,因为您必须针对每个不同的终端组合(zsh、cmd、bash 等)提出并回答相同的问题一种操作系统(Linux、Windows 等)。 PyCharm 终端模拟器插件抽象了这些细节,用户可以假设所选的操作系统终端功能和属性由 PyCharm 终端模拟器插件保留。通过转到File>Settings>Tools>Terminal,可以在 IDE 中对终端进行一些配置。

如果它是 Conda 解释器而不是常规 Python 解释器,你的答案会改变吗?

没有。因为解释器是可以在终端内启动的进程。所以后一个问题独立于前一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多