Verfassung
$ find . -type f
./test1/bin/test.py
./test1/conf/__init__.py
./test1/conf/test_settings.py
./submodule/__init__.py
./submodule/conf/__init__.py
./submodule/conf/submodule_settings.py
./submodule/submodule_test.py
Python-Inhalt des Anrufers
$ cat ./test1/bin/test.py
# -*- coding: utf-8 -*-
import sys
import os
base_dir = os.path.dirname(__file__) + "/.."
sys.path.append( base_dir )
from conf import test_settings
#import conf.test_settings
sys.path.append(base_dir + "/../submodule")
import submodule_test
Inhalt des Submoduls
$ cat ./submodule/submodule_test.py
# -*- coding: utf-8 -*-
import sys
import os
#Testen Sie Ihr Verzeichnis, auch wenn Sie versuchen, Ihr Verzeichnis mit Vorrang zu durchsuchen.Ich gehe, um Pys Conf zu lesen
sys.path.insert(0, os.path.dirname(__file__))
print sys.path
import conf.submodule_settings
$ cat ./submodule/submodule_test.py
# -*- coding: utf-8 -*-
import sys
import os
#In der Importquelle sollte kein Modulname für das Submodul vorhanden sein, damit Sie es korrekt aufrufen können.
sys.path.insert(0, os.path.dirname(__file__) + "/../")
print sys.path
import submodule.conf.submodule_settings
Hmm. Sie können es lesen, aber Sie müssen den Namen des Moduls festlegen. Es scheint einen besseren Weg zu geben, aber ich weiß es nicht.
Ich möchte die Konfiguration für eine andere Datei des Submoduls lesen, daher schien es mir möglich, dieses Problem nur mit ConfigParser zu beseitigen.