Python importing subdirectories

你说的曾经没有我的故事 提交于 2019-12-22 18:27:36

问题


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__.pyand 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!