I have a directory structure like this
conf
__init__.py
settings.py
abc.conf
def.conf
src
main.py
xyz.py
src I chose not to make a package but a regular folder. I am trying to import the settings.py file in the main.py and executing the whole thing with the command python3 main.py
My import statement in main.py : import conf.settings
The error I'm getting is No module named conf.settings
and I can't get my head around it.
Is python failing to recognize conf as a package? Can packages contain files other than .py files (.conf files in my case)
When importing python search current directory and the sys.path
. Since your main.py
is in src
folder it cannot see the conf
package folder. Luckily you could update sys.path
at runtime.
root
conf
__init__.py
settings.py
src
main.py
So you could append sys.path
from main.py
before importing conf
module. Try following:
# main.py
import os, sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
from conf import settings
...
The other way is to update PYTHONPATH directly and add path to your script root directory.
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.