我在使用setup.py
设置 python 包时遇到问题。首先,我有以下目录设置:
maindir
|- setup.py
|-mymodule
|- __init__.py
|- mainmodule.py
|-subdir
|- __init__.py
|- submodule.py
即项目目录包含setup.py
和一个目录mymodule
,它本身包含两个目录中的两个python模块。该文件submodule.py
仅包含
teststring = "hello world"
mainmodule.py
包含:
from .subdir import submodule
mainstring = "42"
并setup.py
包含:
import os
from setuptools import setup
setup(
name = "mytestmodule",
version = "0.0.1",
description = ("A simple module."),
packages=['mymodule'],
)
当我from mymodule import mainmodule
使用ipython
from时sourceTest
,行为按预期工作,我可以参考例如mainmodule.submodule.teststring
,它给了我字符串hello world
。
另一方面,当我使用安装此“包”python setup.py install
并尝试执行相同操作(从其他目录中)时,出现导入错误:
In [1]: from mymodule import mainmodule
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/home/alexander/<ipython-input-1-cf4c9bafa487> in <module>()
----> 1 from mymodule import mainmodule
/home/alexander/build/bdist.linux-i686/egg/mymodule/mainmodule.py in <module>()
ImportError: No module named subdir
我没有看到我做错了什么,因为我遵循了入门教程和导入内部包的规则。我想我的错误是一个非常小的错误,但我无法发现它并且感谢您的帮助。