Sys.path.insert 插入模块路径,但导入不起作用

Mic*_*gas 7 python django path sys sys.path

我想在项目中导入一个模块,但由于导入错误给我带来了很多麻烦。所以我决定写一个小测试来看看问题出在哪里。我将一个文件夹添加到我的系统路径并尝试导入它。我得到一个Import Error: no module found named xyz

像这样:

import sys
import os

sys.path.insert(0, os.path.abspath('../../myfolder'))
import myfolder
print(sys.path)

Run Code Online (Sandbox Code Playgroud)

系统路径是['/Users/myuser/myproject/mywebsitefolder/myfolder/', ...]

myfolder包含一个__init__.py文件。将路径硬编码到 myfolder 具有相同的结果。网上的其他问题通过添加正确的路径或添加 init 来解决问题。但我认为两者都有,问题仍然存在。

我的印象是 python 在系统路径中查找可导入模块,或者我是否误解了它应该如何工作?

如果我理解正确的话,有什么办法可以进一步调试吗?或者这可能是 python 版本的问题?

非常感谢您的帮助。提前致谢!

编辑:这是我的目录结构

  • 我的网站文件夹
    • 我的文件夹
      • api_供应
        • 测试(包含我所有的测试和许多文件)
        • 初始化.py
        • 序列化器.py
        • urls.py
        • 视图.py
      • api_需求
        • 测试(包含我所有的测试和许多文件)
        • 初始化.py
        • 序列化器.py
        • urls.py
        • 视图.py
      • 迁移(文件夹)
      • 模板(文件夹)
      • 初始化.py
      • 管理员.py
      • 应用程序.py
      • 模型.py
      • 测试.py
      • urls.py
      • 视图.py

Aru*_*tel 6

替换代码,因为您不需要将文件夹添加到路径中,您需要的只是文件夹的路径

import sys
import os

sys.path.insert(0, os.path.abspath('../../'))
import myfolder
print(sys.path)
Run Code Online (Sandbox Code Playgroud)