Это дополнительный вопрос к импорту модулей Python с тем же именем , но, поскольку эти два понятия не связаны, вероятно, лучше задать новый вопрос:
У меня естьнесколько проектов Python, и все они имеют пакет conf:
/some_folder/project_1/
conf/
__init__.py
some_source_file.py
/another_folder/project_2/
conf/
__init__.py
another_source_file.py
Для каждого проекта я создал файл .pth в папке site-packages со следующим содержимым:
.../site-packages/project_1.pth:
import sys; sys.path.append('/some_folder/project_1/')
.../site-packages/project_2.pth:
import sys; sys.path.append('/another_folder/project_2/')
Теперь доступ к модулю conf работает для / some_folder / project_1 /:
import conf.some_source_file
, но не для / another_folder / project_2 /:
import conf.another_source_file
AttributeError: 'module' object has no attribute 'another_source_file'
, что, вероятно, связано с тем, что python ищет толькоПервый путь к conf под любыми папками в sys.path.
Поэтому я превратил project_1 и project_2 в пакеты python и добавил символическую ссылку в любой из них, чтобы я мог получить полный доступ к обоим пакетам conf:
/some_folder/project_1/
__init__.py
project_1 <-- symlink to .
conf/
__init__.py
some_source_file.py
/another_folder/project_2/
__init__.py
project_2 <-- symlink to .
conf/
__init__.py
another_source_file.py
В обычном скрипте Python я теперь могу импортировать модули из обоих пакетов conf:
import project_1.conf.some_source_file
import project_2.conf.another_source_file
Однако , когда я пытаюсь сделать то же самое в приложении WSGIUСпойте модуль Apache mod_wsgi, импорт не выполняется для второго проекта.В частности, «стартовый файл» wsgi (то есть файл с суффиксом wsgi, на который ссылается оператор WSGIScriptAlias в файле конфигурации Apache для моего виртуального сервера) успешно импортирует модуль в / another_folder / project_2 /, который, в свою очередь, импортирует project_2 / conf / another_source_file.py.
Второй импорт завершается неудачно, несмотря на то, что / another_folder / project_2 / находится в sys.path.Приложение WSGI работает в режиме демона.
Как мне это отсортировать?