代码之家  ›  专栏  ›  技术社区  ›  Herman

上传到IBM云后的“ImportError:无模块”

  •  0
  • Herman  · 技术社区  · 8 年前

    所以我有一个路径结构,如下所示:

    ~/Dropbox/Coding/Python/Chessbotslack/scripts/Flask_interface.py
    ~/Dropbox/Coding/Python/Chessbotslack/database/spreadsheets.py
    

    的第一行 Flask\u接口。py公司 是:

    from Chessbotslack.database.spreadsheets import add_game
    

    如果我从IDE(PyCharm)运行它,它运行得很好;但如果我从终端运行它,它会抛出错误:

    Traceback (most recent call last):
      File "Flask_interface.py", line 1, in <module>
        from Chessbotslack.database.spreadsheets import add_game
    ModuleNotFoundError: No module named 'Chessbotslack'
    

    为了解决这个问题,我做了两件事:

    1) 正在添加\uu init\uuuu。复制到目录

    这似乎完成了任何事情

    2) 将目录添加到$PYTHONPATH

    在终端中,我运行

    export PYTHONPATH=$PYTHONPATH:~/Dropbox/Coding/Python
    

    这解决了从我的终端运行它的问题,但正如预期的那样,它并没有解决我的IBM云的问题。也许这与需求有关。txt文件?

    2018-04-16T09:08:45.30+0200 [APP/PROC/WEB/0]ERR   File "scripts/Flask_interface.py", line 1, in <module>
    2018-04-16T09:08:45.30+0200 [APP/PROC/WEB/0]ERR     from Chessbotslack.database.spreadsheets import add_game
    2018-04-16T09:08:45.30+0200 [APP/PROC/WEB/0]ERR ImportError: No module named Chessbotslack.database.spreadsheets
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Herman    8 年前

    更改为平面文件夹结构(Chessbotslack文件夹中的每个文件),并将导入命令更改为:

    from Chessbotslack.database.spreadsheets import add_game
    

    收件人:

    from spreadsheets import add_game
    

    解决了它。奇怪的是IDE(PyCharm)不认为这是正确的;仅在(错误地)添加文件夹名称“Chessbotslack”之后在它前面,IDE提供了帮助。

    你知道该怎么办吗?