导入已安装的模块但在导入子模块

时间:2016-08-08 12:50:01

标签: python import setuptools python-module python-packaging

使用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。

0 个答案:

没有答案