Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建单个模块不支持的python包';不需要专门进口吗?_Python_Python 2.7_Package - Fatal编程技术网

如何创建单个模块不支持的python包';不需要专门进口吗?

如何创建单个模块不支持的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

抱歉,我觉得这是一个老生常谈的领域,但我已经仔细研究了一下,仍然在努力导入我编写的python模块。更具体地说,如果直接导入,我只能引用模块。为了与其他软件包兼容,我需要使用python-2.7

例如,对于包brcfiles

BRC文件的文件结构:

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'>