教程的写法只有一句
from ex48 import lexicon
但根据他说的骨架 , lexicon 这个类应该从 ex48.ex48.ex48 这里导入才对
为什么他可以那样写?
而且 , 最整我的是即使我写 from ex48.ex48.ex48 import lexicon 也会出现 ImportError
为了方便 , 下面说成 ex48.project.main
因为 ex48 这个目录的父目录是 PYTHONPATH 环境变量中指定的
所以我以为 ex48.project.main 就一定能导入 main.py 里边的东西
但试了千百次还是 ImportError 一次又一次的
后来我发现只要在 project 这个目录下创建 __init__.py 空文件就能 import 成功
因为教材的写法很简单 , 而且他在说创建骨架的时候 , 没有说要在项目文件夹 (skeleton | ex48) 下创建一个 __init__.py , 所以我有点怀疑我的解决方法是正确的吗?
下面是书里说的项目骨架结构
root
skeleton
setup.py
__init__.py # 加上这个文件才能正常导入模块
bin
docs
NAME
__init__.py
tests
__init__.py
NAME_tests.py
from ex48 import lexicon
但根据他说的骨架 , lexicon 这个类应该从 ex48.ex48.ex48 这里导入才对
为什么他可以那样写?
而且 , 最整我的是即使我写 from ex48.ex48.ex48 import lexicon 也会出现 ImportError
为了方便 , 下面说成 ex48.project.main
因为 ex48 这个目录的父目录是 PYTHONPATH 环境变量中指定的
所以我以为 ex48.project.main 就一定能导入 main.py 里边的东西
但试了千百次还是 ImportError 一次又一次的
后来我发现只要在 project 这个目录下创建 __init__.py 空文件就能 import 成功
因为教材的写法很简单 , 而且他在说创建骨架的时候 , 没有说要在项目文件夹 (skeleton | ex48) 下创建一个 __init__.py , 所以我有点怀疑我的解决方法是正确的吗?
下面是书里说的项目骨架结构
root
skeleton
setup.py
__init__.py # 加上这个文件才能正常导入模块
bin
docs
NAME
__init__.py
tests
__init__.py
NAME_tests.py