import python modules with the same name

2019-01-24 15:01发布

问题:

I have several python projects and they all have a conf package:

/some_folder/project_1/
  conf/
    __init__.py
    some_source_file.py

/another_folder/project_2/
  conf/
    __init__.py
    another_source_file.py

For each project, I have created a .pth file in the site-packages folder with this contents:

.../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/')

I can access modules in /some_folder/project_1/:

import conf.some_source_file

but not the modules in /another_folder/project_2/:

import conf.another_source_file
AttributeError: 'module' object has no attribute 'another_source_file'

It looks as if python only searches the first conf path underneath any folders in sys.path. Is there a way to fix that ?

回答1:

No. You will need to either rename one of them or turn the project directory into a package and import via that.