使用pip install -upgrade安装的模块。从项目文件夹可导入,但子模块不是。
该模块具有以下结构:
mymodule
|- setup.py
|- mymodule
|- __init__.py
|- cli.py
|- submodule
|- __init__.py
|- parta.py
在setup.py文件中,我使用了setuptools和find_packages()语法以及手册包规范。两者产生相同的结果:
from setuptools import setup, find_packages
setup(
name='mymodule',
packages=find_packages(),
package_dir={'mymodule': 'mymodule'},
entry_points={'console_scripts': ['mymodule=mymodule.cli:main']},
include_package_data=True,
)
和
packages=['mymodule],
package_dir={'mymodule':'mymodule'},
尝试导入模块本身时,导入有效,但子模块不可用:
from module
import module.submodule.parta
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'mymodule' has no attribute 'submodule'
同样地
from mymodule.submodule import parta
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'mymodule.submodule'
PYTHONPATH
变量确实包含模块所在的目录(home/user/modules/mymodule/
):
printenv PYTHONPATH
/home/user/modules:
我尝试将模块本身(home/user/modules/mymodule
)添加到PYTHONPATH
后结果没有改变。
从/home/user/modules/mymodule
启动python时,唯一可以导入子模块且没有错误的时间。
我错过了什么?不能设置工具找到并复制所有需要的文件吗?我使用的是Python 3.5。