簡體   English   中英

為什么print(__ name__)給'builtins'?

[英]Why does print(__name__) give 'builtins'?

我正在使用pycharm.2017.1.2。 我用py3環境安裝了anaconda2。 在Pycharm中,我使用的是Python3解釋器,代碼很簡單:

print(__name__)

在Pycharm的Python控制台中,它打印builtins函數。

如果我單擊“運行”按鈕,它將按預期打印main

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

PyCharm Python控制台實際上運行一個名為pydevconsole.py的模塊(應位於C:\\ Program Files \\ JetBrains \\ PyCharm 2017.1.2 \\ helpers \\ pydev \\ pydevconsole.py)。 該模塊創建一個解釋器並將其設置為builtins模塊的屬性。

因此,PyCharm控制台上的print(__name__)將顯示builtins print(__name__)

在執行期間(單擊“運行”時),將調用指定的Python解釋器,而不是pydevconsole模塊。 因此print(__name__)按預期顯示__main__

如果運行環境是遠程的,並且未安裝IPython,則會發生這種情況。 這是在這里報道PyCharm問題 它發生在2018.2發布,並且正在進行修復。 要解決它,只需在遠程環境中安裝IPython。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM