我在同一目录中有两个文件,并且在任何地方都没有__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
?
答案 0 :(得分:8)
来自module docs(强调我的)的引用:
“当导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,则会在变量sys给出的目录列表中搜索名为spam.py的文件。 .path。sys.path从这些位置初始化: