Python基础import导包问题
2017-11-09 本文已影响1743人
EasonDev
首先我自己的环境是mac+python3.6所以以下所有问题都是基本此环境
- 导下级目录
python在import包的时候是查找同级目录及sys.path(python环境下)的文件。
如果想要导入下级目录中的某个文件则使用:from 目录名 import 文件名
比如像下面我想在cai_quan.py
中import testdir_test.py
那么导包就是:from testdir2 import testdir_test.py。
ps:在二级目录中需要放入一个名字为__init__.py
的空文件里面什么都不需要写(但我删除发现也可以,再但是github看到两个大神的库都有放所以还是老实放吧)
-
导上级目录
使用from ..当前文件名 import 主目录文件
因为python是使用相对路径的方式去查找的这样就比较好理解..
的意思了。有一个注意点就是如果你是使用终端直接执行二级目录中的文件。那么会报ValueError: attempted relative import beyond top-level package
因为python认为这是主目录不能再向上了。只能是在主目录中的文件引用到该二级目录文件那么才不会报错。一开始我还以为这种方式有问题直到...........都是泪啊 -
同级目录
在同级的两个目录引用时直接使用from 目录名 import 文件名
比如说testdir_test.py
引用hong_na.py
那么就是:from testdir import hong_na
这样就可以了