Import Script from a Parent Directory

后端 未结 3 1099
天命终不由人
天命终不由人 2020-11-29 01:20

How do I import a module(python file) that resides in the parent directory?

Both directories have a __init__.py file in them but I still cannot import a

相关标签:
3条回答
  • 2020-11-29 01:33

    You don't import scripts in Python you import modules. Some python modules are also scripts that you can run directly (they do some useful work at a module-level).

    In general it is preferable to use absolute imports rather than relative imports.

    toplevel_package/
    ├── __init__.py
    ├── moduleA.py
    └── subpackage
        ├── __init__.py
        └── moduleB.py
    

    In moduleB:

    from toplevel_package import moduleA
    

    If you'd like to run moduleB.py as a script then make sure that parent directory for toplevel_package is in your sys.path.

    0 讨论(0)
  • 2020-11-29 01:36

    If you want to run the script directly, you can:

    1. Add the FolderA's path to the environment variable (PYTHONPATH).
    2. Add the path to sys.path in the your script.

    Then:

    import module_you_wanted
    
    0 讨论(0)
  • 2020-11-29 01:47

    From the docs:

    from .. import scriptA
    

    You can do this in packages, but not in scripts you run directly. From the link above:

    Note that both explicit and implicit relative imports are based on the name of the current module. Since the name of the main module is always "__main__", modules intended for use as the main module of a Python application should always use absolute imports.

    If you create a script that imports A.B.B, you won't receive the ValueError.

    0 讨论(0)
提交回复
热议问题