如何创建单个模块不支持的python包';不需要专门进口吗?
抱歉,我觉得这是一个老生常谈的领域,但我已经仔细研究了一下,仍然在努力导入我编写的python模块。更具体地说,如果直接导入,我只能引用模块。为了与其他软件包兼容,我需要使用python-2.7 例如,对于包brcfiles BRC文件的文件结构:如何创建单个模块不支持的python包';不需要专门进口吗?,python,python-2.7,package,Python,Python 2.7,Package,抱歉,我觉得这是一个老生常谈的领域,但我已经仔细研究了一下,仍然在努力导入我编写的python模块。更具体地说,如果直接导入,我只能引用模块。为了与其他软件包兼容,我需要使用python-2.7 例如,对于包brcfiles BRC文件的文件结构: brcfiles/ LICENSE README.md setup.py brcfiles/ __init__.py files.py samples.py init.py的内容: $ c
brcfiles/
LICENSE
README.md
setup.py
brcfiles/
__init__.py
files.py
samples.py
init.py的内容:
$ cat /path_to_pkg/brcfiles/brcfiles/__init__.py
__all__ = ['files', 'samples']
我的.bash_配置文件有以下行(我还没有pip安装brcfiles——仍在开发中):
如果我单独加载模块,我将获得所需的行为,并可以访问模块内容
>>> import brcfiles.files
>>> brcfiles.files
<module 'brcfiles.files' from '/path_to_pkg/packages/brcfiles/brcfiles/files.pyc'>
导入brcfiles.files
>>>brcfiles.files
但是如果导入整个包,我不能引用单个模块
>>> import brcfiles
>>> brcfiles.files
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'files'
>>导入BRC文件
>>>brcfiles.files
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“文件”
FWIW,下面的方法可以工作,但是我不喜欢这个方法造成的名称空间问题
>>> from brcfiles import *
>>> files
<module 'brcfiles.files' from '/path_to_pkg/packages/brcfiles/brcfiles/files.pyc'>
>>从brcfiles导入*
>>>档案
上述解决方案目前可能有效,但我觉得这个问题是我做错了什么的症状。这可能是我未来许多生物信息管道的基石,所以我希望它能正确完成。显然,我对创建python软件包还比较陌生,所以衷心感谢那些花时间帮助我的人 我认为您误解了import命令的语法。
导入brcfiles.files
:从包brcfiles导入模块“files”import brcfiles
:导入包brcfiles(即包的init.py内的代码)
从brcfiles导入*
:从包brcfiles导入所有模块(文件、示例)。您不能先导入brcfiles,然后再导入brcfiles.files。因为该语句只导入了BRC文件(init),而没有导入BRC文件中的其他模块
当您执行brcfiles.files时,它开始在brcfiles的init中查找方法或属性“files”,并因此给出所述错误。我认为您误解了import命令的语法。
导入brcfiles.files
:从包brcfiles导入模块“files”import brcfiles
:导入包brcfiles(即包的init.py内的代码)
从brcfiles导入*
:从包brcfiles导入所有模块(文件、示例)。您不能先导入brcfiles,然后再导入brcfiles.files。因为该语句只导入了BRC文件(init),而没有导入BRC文件中的其他模块
当您执行brcfiles.files时,它会开始在brcfiles的init中查找方法或属性“files”,因此会出现所述错误。您是否尝试过在
\uuuu init\uuuuuuupy
中导入子模块?谢谢!我从中添加了。将文件导入到\uuuu init\uuuuuuy.py
中,它可以根据需要工作!我以为我通过设置\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!我从中添加了。将文件导入到\uuuu init\uuuuuuy.py
中,它可以根据需要工作!我以为我通过设置\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!看来是这样。根据@duckmayr,我从中添加了。将文件
导入到\uuuu init\uuuu.py
中,它可以根据需要工作。谢谢你的解释和时间!谢谢看来是这样。根据@duckmayr,我从中添加了。将文件
导入到\uuuu init\uuuu.py
中,它可以根据需要工作。谢谢你的解释和时间!
>>> from brcfiles import *
>>> files
<module 'brcfiles.files' from '/path_to_pkg/packages/brcfiles/brcfiles/files.pyc'>