小编D W*_*D W的帖子

模块导入自己

我正在尝试从特定于应用程序的终端导入模块(在这种情况下是Maya,但最终是其他终端).我从git下载了一个项目,我有一个像这样的结构:

modulename
    submodule
        __init.py__
        subsubmodule
        ...
    submodule
    ...
    __init.py__
    modulename.py
Run Code Online (Sandbox Code Playgroud)

然后在我的执行shell中,我正在尝试导入模块以在shell上使用,所以我有:

import sys,os
modulepath = 'C:/path/to/module'
sys.path.append(modulepath)
import modulename
Run Code Online (Sandbox Code Playgroud)

如果导入的modulename.py为空,则一切正常.然而,该模块的前两行是试图导入自己的模块(我真的不知道为什么,因为这是别人的项目,但它似乎对结构很重要)

import sys,os
import modulename from modulename as mod
Run Code Online (Sandbox Code Playgroud)

这会得到错误:

# Error: ImportError: cannot import name modulename# 
Run Code Online (Sandbox Code Playgroud)

其他任何事情都无法进行.

最后,我想知道为什么一个模块无法导入自己,和/或如何解决这个问题?

我已经读过一个模块认为自己被命名为main以便相对导入不起作用,在这种情况下我会期望

import __main__ as mod
Run Code Online (Sandbox Code Playgroud)

以错误的方式工作,而不是

# Error: ImportError: Cannot re-init internal module __main__ #
Run Code Online (Sandbox Code Playgroud)

这是完全有道理的.

[问题是,如何从内部导入模块?]

python module importerror self-reference

2
推荐指数
1
解决办法
6633
查看次数

标签 统计

importerror ×1

module ×1

python ×1

self-reference ×1