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

标签 python django path sys sys.path

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

像这样:

import sys
import os

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

sys.path 为 ['/Users/myuser/myproject/mywebsitefolder/myfolder/', ...]

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

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

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

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

编辑:这是我的目录结构

  • 我的网站文件夹
    • 我的文件夹
      • api_supply
        • 测试(包含我的所有测试和许多文件)
        • init.py
        • 序列化器.py
        • url.py
        • views.py
      • api_需求
        • 测试(包含我的所有测试和许多文件)
        • init.py
        • 序列化器.py
        • url.py
        • views.py
      • 迁移(文件夹)
      • 模板(文件夹)
      • init.py
      • admin.py
      • apps.py
      • 模型.py
      • 测试.py
      • url.py
      • views.py

最佳答案

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

import sys
import os

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

关于python - Sys.path.insert 插入模块路径,但导入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990164/

相关文章:

python - 比较两列中的值并提取数据框中第三列的值

django - Django i18n:如何不翻译管理网站?

python - Django 管理员保存错误 : get_db_prep_value() got an unexpected keyword argument 'connection'

java - 如何获取正在运行的JAR文件的路径?

windows - 修改for循环批处理文件中的变量

python - 使用xmpppy时完整的JID值在哪里?

python - 无法从 environment.yml 创建 conda 环境

python检查m个方法中的n个返回值是否为真

django - 如何在 django 中使用 flutter 进行 google、facebook 身份验证

css - 具有子目录的网站中的相对路径