下面的控制台输出解释了这个问题
$ ls -r *
b:
y.py __init__.py
a:
x.pyc x.py __init__.pyc __init__.py
L-IDC42NDV7M-M:pytest rohit$ python
>>> import a.x as xx
>>> print xx.v
1
$ python b/y.py
Traceback (most recent call last):
File "b/y.py", line 1, in <module>
import a.x as xx
ImportError: No module named a.x
如果python查看模块的当前工作目录,‘pythonb/y.py’不应该找到a/x.py吗?你知道吗
In Java sibling modules can be imported. I am looking for something similar in python.
有什么想法吗?你知道吗
主程序的目录会自动添加到Python路径中。主程序的模块名是
__main__
,而不是b.y
您可以在a和b的父目录中编写一个简单的主程序,也可以将该父目录添加到PYTHONPATH中。你知道吗
如果调用
python very/long/path/to/the/main/program.py
,并不意味着当前目录是深层命名空间的根目录。我认为,在Java中,主程序的名称空间相对较深,因此一切都是不同的。你知道吗Python不搜索当前目录(
.
)。但是它会搜索包含输入脚本的目录(./b
)。见The Module Search Path。你知道吗如果要搜索当前目录,可以使用
PYTHONPATH=.
或使用^{} option :
相关问题 更多 >
编程相关推荐