Bee*_*ars 12 python directory syntax code-reuse python-2.7
我正在尝试通过Python学习编程,所以如果这是一个荒谬简单的问题,我会提前道歉.
我试图简化我复杂的目录结构并利用Python的一些代码重用功能,我遇到了一个对我来说无法解释的ImportError错误.在过去的几个小时里,我一直在阅读有关Python的import,module和package功能(在这里,这里,这里,并在这里等等),但我仍然无法解决这个(貌似)简单的错误.
这是问题所在.
我有一个目录(dir),其中有一个子目录(subdir).每个目录包含几个文件.因此,我的整体目录结构如下所示:
dir/
__init__.py
draw_lib.py
subdir/
__init___.py
drawing.py
Run Code Online (Sandbox Code Playgroud)
在我的drawing.py文件中,我尝试draw_lib.py使用以下行导入:from dir import daw_lib.py.它导致了ImportError: No module named dir.任何人都可以快速解释为什么我的drawing.py文件找不到我的dir目录?谢谢你的帮助.我完全迷失了,并希望一劳永逸地改进我的代码重用和目录结构.
您最初正在执行draw_lib.py。所以“根目录”在整个程序中都是/。
然后,当你在drawing.py 中尝试' from dir import draw_lib.py ' 时它不会工作,因为根目录仍然是/而不是dir/。
import draw_lib
Run Code Online (Sandbox Code Playgroud)
将在 drawing.py 中。
/
__init__.py
main.py
test/
__init___.py
case.py
Run Code Online (Sandbox Code Playgroud)
在main.py 中,输入:
import test.case
print 'main.py'
if __name__ == "__main__":
test.case.test()
Run Code Online (Sandbox Code Playgroud)
在test/case.py 中,输入:
import main
def test():
print 'case.py'
Run Code Online (Sandbox Code Playgroud)
我的输出:
main.py
main.py
case.py
Run Code Online (Sandbox Code Playgroud)
如您所见,我从嵌套文件中导入了main.py。你会看到main.py两次。当您在case.py 中导入它时,第二次初始启动一次。
| 归档时间: |
|
| 查看次数: |
3822 次 |
| 最近记录: |