问题
I'm trying to import all files from a sub-directory, so I figured I could write __init__.py
in that sub-directory to import the files. However, when I do this it does not seem to import anything.
File structure:
prog.py
module/
__init__.py
code.py
Code for prog.py
: pass
Code for __init__.py
: import code
Code for code.py
: print('hello')
When I run prog.py nothing happens. Why does it not print hello
, and is there a better way to easily import everything from a sub-directory?
回答1:
Put this in prog.py
:
import module
Python will only load packages or modules that are imported.
To make it work, you probably need jcollado's answer as well.
回答2:
If you have the following structure:
package
__init__.py
module.py
In __init__.py
you can either try this:
import package.module
or this:
from . import module
This way, if package
is in your PYTHONPATH
, you'll get the expected behaviour:
>>> import package
hello
回答3:
Suppose you have a file structure like this:
prog.py
module/
__init__.py
code.py
Then import module
would import the code in module/__init__.py
and import module.code
or from module import code
would import the code in module/code.py
under the local name "module.code" or "code".
来源:https://stackoverflow.com/questions/8951980/python-importing-subdirectories