簡體   English   中英

這個Python匯入如何運作?

[英]How does this Python import work?

我在同一目錄中有兩個文件,並且任何地方都沒有__init__.py文件:

c:\work\test>tree
.
|-- a
|   `-- a
|       |-- a1.py
|       `-- a2.py
`-- b

一個文件導入另一個文件:

c:\work\test>type a\a\a1.py
print 'a1-start'
import a2
print 'a1-end'

c:\work\test>type a\a\a2.py
print 'a2'

即使從完全不同的位置運行,導入也會成功:

c:\work\test\b>python ..\a\a\a1.py
a1-start
a2
a1-end

我在跑

c:\work\test>python -V
Python 2.7.3

並且我的PYTHONPATH和PYTHONHOME變量未設置

c:\work\test>echo %PYTHONPATH% %PYTHONHOME%
%PYTHONPATH% %PYTHONHOME%

a1.py如何找到a2

來自模塊文檔的報價(重點是我的):

“導入名為spam的模塊時,解釋器首先搜索具有該名稱的內置模塊。如果找不到,則解釋器將在變量sys.path給出的目錄列表中搜索名為spam.py的文件。 sys.path從以下位置初始化:

  • 包含輸入腳本的目錄 (或當前目錄)。
  • PYTHONPATH(目錄名稱列表,語法與shell變量PATH相同)。
  • 取決於安裝的默認值。”

暫無
暫無

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

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