__Python中目录的init__;.py用法
我在我的项目中使用__Python中目录的init__;.py用法,python,Python,我在我的项目中使用\uuuu init\uuuu.py,结构如下: project\ project.py cfg.py __init__.py database\ data.py __init__.py test\ test_project.py __init__.py 当我需要使用查看project.py中的database\modules时,一切正常 from database.data
\uuuu init\uuuu.py
,结构如下:
project\
project.py
cfg.py
__init__.py
database\
data.py
__init__.py
test\
test_project.py
__init__.py
当我需要使用查看project.py中的database\modules时,一切正常
from database.data import *
但是,如果我需要在test_project.py中包含一些测试代码,如何“查看”数据库\模块?
您有3种选择:
- 使用相对导入(
)。我不推荐那个from..import database.data
- 将路径附加到代码中的
sys.path
- 使用
和addsitedir()
文件李>.pth
project\
的目录运行脚本,只需在test\u project.py
中从project.database.data import*执行
这通常是个好主意,因为:
包装内的相对进口
强烈反对进口。总是
将绝对包路径用于所有
进口。即使现在政治公众人物328[7]已经
在Python2.5中完全实现,其
显式相对导入的样式是
积极劝阻;绝对进口
更便于携带,通常更方便
可读的
鼓励上面给出的绝对导入。官方不鼓励相对导入。我有一个“SyntaxError:invalid syntax”错误(在Python 2.71中)我没有pb可以从project\运行test\u project.py,但我会从project\test\运行它。您是否也需要在test\u project.py中导入项目
?是的,我也需要,但我会简化我的答案。好的……我选择在sys.path中添加路径
from .. import database.data