python-3.x - PyCharm Unresolved 导入引用?

标签 python-3.x pycharm

为什么 PyCharm 强调这些导入:

from oauth2_helper import (_url, get_token, get_session)
from config import scope

Unresolved reference ,但是如果我在前面添加点:
from .oauth2_helper import (_url, get_token, get_session)
from .config import scope

我在 PyCharm 中没有得到错误下划线,但是从终端运行我的应用程序时,我得到了这个错误:
ModuleNotFoundError: No module named '__main__.oauth2_helper'; '__main__' is not a package
你怎么看,为什么会这样?

最佳答案

这里有两件事在起作用:

就像 Eskapp 在评论中所说的那样,PyCharm 被配置为与您预期不同的项目根目录,正如它将您的导入标记为未解析的引用所证明的那样。您没有为您的项目结构提供任何提示,但您的 Project Root 很可能设置为 Python 模块的父目录(甚至更进一步的层次结构)。 PyCharm 正在寻找 ${PROJECTROOT}/oath2_helper 并没有找到它,因为 Project Root 设置为错误的目录。

然后,您尝试通过更改为相对导入来解决此问题,这似乎是一个合乎逻辑的解决方案。看起来您正在直接调用写入这些导入的模块(即 python myapp.py )。当你这样调用一个模块时,它会丢弃关于包结构的信息,不再有任何关于其他模块相对位置的信息。见 https://stackoverflow.com/a/73149/11034626

关于python-3.x - PyCharm Unresolved 导入引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53380281/

相关文章:

python - Pydantic:在将值分配给字段之前转换值?

python - 使用另一个目录中的函数/类

python - Pycharm-运行打开的CV代码直接进入 “Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)”

python - 使用一组规则替换字符串中的多个字符

python - 在 Python 类型中声明元组的长度

python-3.x - 如何在标志从 0 变为 1 之前和之后提取行

python - 不支持 pycharm flask 项目

python - Pycharm 转换空格并且不会转换回来

python - 从pycharm中重组的文本文件中删除面包屑

python - 根据所选列过滤重复的行并与 Pandas 中的另一个数据框进行比较