【问题标题】:Why I can't import upper level modules or functions? [duplicate]为什么我不能导入上层模块或函数? [复制]
【发布时间】:2021-03-15 23:47:51
【问题描述】:

我有这样一个项目结构:

scripts:
   apps:
      __init__.py
      app.py
   baike:
      __init__.py
      search.py

    __init__.py

我是 PyCharm,我将“脚本”标记为项目源根目录,在 apps/app.py 中,我要导入:

from scripts.baike import Query

在 baike.py 中,我有:

class Query(object):
     def __init__(self):
        pass

     def query(text):
        pass

我想要的是从 baike.Query 类中导入“查询”函数。但是,当我键入“脚本”时。在 PyCharm 中,“脚本”不可用于导入。我没有创建任何 setup.py,只是想使用“脚本”作为源根目录。

有什么问题?

【问题讨论】:

    标签: python pycharm


    【解决方案1】:

    导入来自上层目录的模块的唯一方法是将目录scripts 标记为Root。 要在 PyCharm 中执行此操作,请右键单击文件夹 scripts,然后单击 Mark Directory as > Sources Root。它应该可以解决问题。

    【讨论】:

    • 是的,我做到了。但是在 app.py 中,当我输入“from scripts”时,“scripts”仍然无法导入。
    • 我们是否同意,如果您已将scripts 设置为根目录,您可以直接使用from baike import Query 吗?因为scripts 是root,所以里面的东西可以这样调用。有意义吗?
    • 你是对的。对不起!我仍在尝试从 scripts.baike 导入。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2023-04-09
    相关资源
    最近更新 更多