How to do relative imports in Python?

前端 未结 15 2861
情深已故
情深已故 2020-11-21 04:47

Imagine this directory structure:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py

I\'

15条回答
  •  南方客
    南方客 (楼主)
    2020-11-21 05:44

    main.py
    setup.py
    app/ ->
        __init__.py
        package_a/ ->
           __init__.py
           module_a.py
        package_b/ ->
           __init__.py
           module_b.py
    
    1. You run python main.py.
    2. main.py does: import app.package_a.module_a
    3. module_a.py does import app.package_b.module_b

    Alternatively 2 or 3 could use: from app.package_a import module_a

    That will work as long as you have app in your PYTHONPATH. main.py could be anywhere then.

    So you write a setup.py to copy (install) the whole app package and subpackages to the target system's python folders, and main.py to target system's script folders.

提交回复
热议问题