如何从inpackage“main”modu导入包模块

2024-10-02 18:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我的包结构是:

main.py
mapp/
   __init__.py
   core/
     __init__.py
     tobeimported.py
   test/
     __init__.py
     (test modules)
   utils/
     __init__.py
     blasttofasta.py

文件blasttofasta.py作为脚本执行。在

blasttofasta.py看起来像:

^{pr2}$

但例外情况发生了:

Traceback (most recent call last):
  File "utils/blasttofasta.py", line 5, in <module>
    import mapp.core.tobeimported
ImportError: No module named mapp.core.analyzers

如何导入导入模块?我负责blasttofasta.py从顶部目录(其中主.py是)

编辑:也许更好的问题是:如何将mapp包系统路径?因为脚本文件只看到它自己的目录,而看不到包目录。在

谢谢你


Tags: 文件pycoretest目录脚本modulesinit
3条回答

按照绝对结构导入。在

导入blasttofasta.py在托贝波特.py在

ToBeimport目录

from myapp.utils import blasttofasta

你的结构很好。在

如果我想包括blasttofasta.py或者同时运行它作为脚本最重要的是有包含mapp包的目录搜索路径. 在

这对我有效:

在导入mapp(或这个包中的其他模块)之前,我写了blasttofasta.py公司名称:

import os
os.sys.path.append(os.path.dirname(os.path.realpath(__file__))+ '/../../')

这个append mapp包路径,我可以将它作为脚本运行。另一方面是没有问题的是包含在另一个包中。在

需要做两件事:

  • 您的map目录需要一个__init__.py文件。在

你可以简单地这样做(天真地):

$ touch /path/to/map/__init__.py
  • /path/to/map需要在sys.path

请阅读:http://docs.python.org/2/tutorial/modules.html了解更多详细信息。在

相关问题 更多 >