导入的模块未导入

时间:2019-10-24 19:12:27

标签: python

我遇到了2个主要问题,当我将所有脚本都放在一个目录TwitterAnalyzer中时一切正常,但是当我开始清理时。发生了一些问题。

我必须将 TwitterApi 导入到Analyzer模块中。我找到了解决方案,但对我来说却很愚蠢(if __name__ == '__main__')。否则,导入将无法在父模块_run_GUI_mode.py

中进行

我还尝试制作一些__init__.py文件,该文件可以同时导入这两种东西,但无法正常工作 NameError: name 'TwitterApi' is not defined 如何正确导入,这将使我能够独立运行Analyzer。 我对此主题不完全理解,可能会有答案:Why does importing a python module not import nested modules?

我应该将所有脚本移回同一目录吗?我将避免对tweets目录进行路径跟踪的其他工作。分析器正在后台下载推文。

# My Project Tree
.TwitterAnalyzer
    |---LICENSE
    |---README.md
    |---TwitterAnalyzer
        |---Analyzer
            |---Analyzer.py
            |---Readme.md
            |---secret_token.txt
            |---TwitterApi.py
            |---__init__.py
        |---GUI
            |---create_gui_py.py
            |---GUI.py
            |---GUI_QT.ui
        |---tweets
        |---_run_GUI_mode.py
# Analyzer\TwitterAnalyzer.py
# Grzegorz Krug

if __name__ == '__main__':  # this is my solution, but I do not like it
    from TwitterApi import TwitterApi, TwitterLoginFailed 
else:
    from Analyzer.TwitterApi import TwitterApi, TwitterLoginFailed


class TwitterAnalyzer(TwitterApi):
    def __init__(self, autologin=True, log_ui=None):
...

# _run_GUI_mode.py
# Grzegorz Krug

from Analyzer.TwitterApi import TwitterApi, TwitterLoginFailed  # <-- This does not work anyway
from Analyzer.Analyzer import TwitterAnalyzer
from GUI.GUI import Ui_MainWindow

class TwitterAnalyzerGUI(TwitterAnalyzer, Ui_MainWindow):
    def __init__(self, mainWindow):
...
# Analyzer/__init__.py
from TwitterApi import TwitterApi
from Analyzer import TwitterAnalyzer

1 个答案:

答案 0 :(得分:2)

__init__.py添加到TwitterAnalyzer目录