[英]Package import creates a module, submodules still importable
我一直在研究python包,现在我想把它变成一个小的RPM发行版。 包中包含一些模块,其中一个模块是可执行的。 我可以使用python setup.py bdist_rpm
创建RPM-package并将其安装在带有rpm
的fedora盒子上。
在这一点上有所需的命令myscript
,它就像一个魅力。 但是当我尝试在ipython
导入包时,我遇到了一些奇怪的事情。 我可以做以下事情
from myscript import sdf
import myscript.mol2
两者都完美无缺,但是
import myscript
myscript.sdf
投
AttributeError: 'module' object has no attribute 'sdf'
我已经使用了一段时间而现在无济于事。 有很多关于进口问题的问题,但我还没有找到答案。
我应该改变什么来使它工作?
当前的文件夹结构是:
myscript/ #project root
setup.py
src/
myscript/
__init__.py
functions.py
sdf.py
mol2.py
runner.py
bin/
myscript #symbolic link to src/myscript/runner.py
setup.py
是:
from distutils.core import setup
setup(name = 'myscript',
version = '0.75',
author ='me',
requires = ['numpy'],
packages = ['myscript'],
package_dir = {'myscript':'src/myscript'},
scripts = ['bin/myscript']
)
和__init__.py
是:
__all__ = ['functions','sdf','mol2','runner']
这是正常行为。 如果要导入子模块,则必须在模块中导入它们。
# myscript/__init__.py
from . import sdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.