代码之家  ›  专栏  ›  技术社区  ›  learningtech

使用python从父目录导入文件的问题

  •  1
  • learningtech  · 技术社区  · 6 年前

    我似乎无法从父目录导入python文件。我在bash中运行了以下命令:

    echo 'token="AAA111"' > config.py
    mkdir scenarios
    echo $'from .. import config\nprint(config.token)' > scenarios/test.py
    python3 scenarios/test.py
    

    但这给了我一个错误:

    Traceback (most recent call last):
      File "scenarios/test.py", line 1, in <module>
        from .. import config
    ValueError: attempted relative import beyond top-level package
    

    我做错什么了?我怎么才能得到 scenarios/test.py 从中获取内容 config.py ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ondrej K.    6 年前

    相对进口(dots)是指 package 不一定是任何目录。*)

    ...
    echo $'import config\nprint(config.token)' > scenarios/test.py
    PYTHONPATH=. python3 scenarios/test.py
    

    *)如果您有以下树:

    .
    └── mypkg
        ├── __init__.py
        ├── config.py
        └── scenarios
            ├── __init__.py
            └── test.py
    

    与 from .. import config 在里面 mypkg/scenarios/test.py mypkg/ ):

    python3 -c 'import mypkg.scenarios.test'