简体   繁体   中英

How can I import all files under subdir in python

I have dir structure like this:

Proj/
    run.py
    Util/
        __init__.py
        x.py
        y.py

In x.py, I define a function:

def p():
    return 1

In y.py, I define:

def q():
    return 2

Currently in run.py, I'll use

from Util import *

But I have to call them using

x.p()
y.q()

But I want to call them using

p()
q()

Is there a way that I can do that? Like (as I imagine)

from Util.* import *

Bring the names up into the package namespace, by using star imports in the __init__.py :

# in util/__init__.py
from util.x import *
from util.y import *

In each submodule, define the names which you want to export by using the __all__ name:

# in x.py
__all__ = ['p']

And:

# in y.py
__all__ = ['q']

This is a pretty standard usage of the __init__.py module within a package, documented here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM