python import at same folder
如果在同一文件夹的另一个文件中导入文件。
文件结构:
1 2 3 4 5 6 | . ├── b │ ├── c.py │ ├── d.py │ └── __init__.py └── __init__.py |
在D.py中:
1 2 | import b.c print"import successfully" |
号
更新1:
我两者都用
1 | python d.py |
还有:
1 | python b/d.py |
。
程序无法运行并引发导入错误。
为了解决这个问题,我使用
1 | sys.path.insert(0, realpath(path_join(dirname(__file__), '../'))) |
然而,这似乎不是标准的方法。
就像一些著名的项目:龙卷风或其他什么,总是使用这种结构。但没有插入行。
如果导入语句在UnitTest文件中,自动测试工具(如sniffer、autonose)可以运行这样的结构。
我不知道为什么。
PEP328或PEP366不能给我一个很好的解决方案。
Pep8建议我这样做。
导入另一个模块(在另一个文件中)时也会出现此问题。例如:
1 2 3 4 5 6 7 8 | ├── a │ ├── e.py │ └── __init__.py ├── b │ ├── c.py │ ├── d.py │ └── __init__.py ├── __init__.py |
。
您应该使用
Vinayak的答案非常适合于Pythonv3.3.2。如果目录"dir"中存在大量非oop python模块,则可以成功地将任何方法从"dir"中的任何文件导入到文件(也存在于"dir"中)。
根据PEP328,以下代码应该有效。
1 | from . import c |
我的理解正确吗?