小编典典

为什么我无法导入自己的 os 模块?

all

我正在使用 Python 3.10。

  1. os.py我在目录中创建了一个模块, my_dir.
  2. 我正在尝试从目录访问我的os.pyusing 。import os``my_dir
  3. 但它正在加载 Python 的os模块,而不是我的。
  4. 我作为第一个元素插入,但它仍在加载 Python 的my_dir模块。sys.path``os
  5. 我对 Python 3 的另一个标准库重复了相同的操作,datetime. 但它按预期工作。即,它正在加载我的datetime.py,而不是 Python 的。

为什么只有os模块有这个问题?它是 Python 3 中的错误吗?


阅读 55

收藏
2022-08-19

共1个答案

小编典典

如果您想导入某个模块 A 恰好具有某个其他模块 B 的名称,那么它在导入层次结构中的位置意味着首先找到模块 B,那么您需要使用相对导入来清楚地区分两者在同一个包中包含模块

例如,说你有

my_dir
    __init__.py
    os.py
    app.py

让 app.py 使用你的 os.py 你做

from .os import X
2022-08-19