【问题标题】:Why does print(__name__) give 'builtins'?为什么 print(__name__) 会给出'builtins'?
【发布时间】:2018-08-05 21:34:42
【问题描述】:

我正在使用 pycharm.2017.1.2。 我用py3环境安装了anaconda2。 在 Pycharm 中,我使用的是 Python3 解释器,代码很简单:

print(__name__)

在 Pycharm 的 Python 控制台中,它会打印 builtins

如果我点击“运行”按钮,它会按预期打印main

为什么 PyCharm Python 控制台打印 builtin 而不是 main

【问题讨论】:

  • 哇,在普通的 Python 控制台中并非如此。抱歉,我对 Pycharm 了解的不够多,无法弄清楚原因,我会对答案感兴趣

标签: python pycharm


【解决方案1】:

PyCharm Python 控制台实际上正在运行一个名为 pydevconsole.py 的模块(应位于 C:\Program Files\JetBrains\PyCharm 2017.1.2\helpers\pydev\pydevconsole.py 中)。该模块创建一个解释器并将其设置为builtins 模块的属性。

因此,PyCharm 控制台上的print(__name__) 将显示builtins

在执行期间(当您单击“运行”时),将调用您指定的 Python 解释器,而不是 pydevconsole 模块。因此print(__name__) 按预期显示__main__

【讨论】:

  • 谢谢,但是代码在另一台计算机上打印'main'。所以它只是一个pycharm设置问题以及如何设置它?
  • 我相信你可以在设置 -> 构建、执行、部署 -> Python 控制台中更改它。但是我之前没有调整过这些设置。您还可以包括您的计算机和其他计算机显示的详细信息吗?例如,我在运行 Python 控制台时看到 C:\CorpApps\Python36\python.exe "C:\Program Files\JetBrains\PyCharm 2017.2.3\helpers\pydev\pydevconsole.py" 55520 55521 Python 3.6.0 (default, Jan 23 2017, 20:01:14) [MSC v.1900 64 bit (AMD64)] on win32 >>> __name__ 'builtins'
  • 好的。打印“内置”的计算机,详细信息是 C:\Users\gpu\AppData\Local\Continuum\Anaconda2\envs\py3\python.exe "C:\Program Files\JetBrains\PyCharm 2017.1.2\helpers\pydev\pydevconsole.py" 58048 58049 。另一台电脑按要求打印'main',详情为C:\Users\lenovo\Anaconda2\envs\py3\python.exe "C:\Program Files\JetBrains\PyCharm 2017.1.2\helpers\pydev\pydevconsole.py" 5599 5600
  • 我注意到正确计算机的详细信息下方有Python 3.6.2 |Continuum Analytics, Inc.| (default, Jul 20 2017, 12:30:02) [MSC v.1900 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help. PyDev console: using IPython 6.1.0 ,但错误的计算机不包含ipython信息。也许是 ipython 的问题?
【解决方案2】:

如果运行环境是远程的,并且没有安装 IPython,就会发生这种情况。这是PyCharm issue reported here。它发生在 2018.2 版本中,并且正在进行修复。要解决它,只需在远程环境中安装 IPython。

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2022-11-27
    • 1970-01-01
    • 2023-03-03
    • 2011-04-22
    相关资源
    最近更新 更多