Вот способ:
import imp
import sys
def find_module(name, predicate=None):
"""Find a module with the name if this module have the predicate true.
Arguments:
- name: module name as a string.
- predicate: a function that accept one argument as the name of a module and return
True or False.
Return:
- The module imported
Raise:
- ImportError if the module wasn't found.
"""
search_paths = sys.path[:]
if not predicate:
return __import__(name)
while 1:
fp, pathname, desc = imp.find_module(name, search_paths)
module = imp.load_module(name, fp, pathname, desc)
if predicate(module):
return module
else:
search_paths = search_paths[1:]
Могу поспорить, что есть некоторые углы, которые я не принял во внимание, но, надеюсь, это может дать вам некоторое представление.
Н.Б .: Я думаю, что лучшая идея будет просто переименовать ваш модуль, если это возможно.
Примечание 2. Как я вижу в вашем отредактированном ответе, к сожалению, это решение не будет работать, потому что два модуля существуют в одном каталоге (site-packages /).