Проблема пути поиска модуля Python
Я пытаюсь работать в среде разработчиков, но нахожу проблемы в том, что python, похоже, использует модули из каталога site-packages. Я хочу, чтобы он использовал модули из моего каталога dev.
sys.path возвращает кучу директорий, вот так
['', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages' etc
Это хорошо, он использует текущий каталог в качестве первого места поиска (по крайней мере, я так понимаю).
Хорошо, теперь, если я создаю, скажем, файл с именем command.py в текущем каталоге, все будет работать так, как я ожидал.
>>> import commands
>>> commands.__file__
'commands.pyc'
Затем я выхожу из оболочки Python и запускаю другую. Я тогда делаю это.
>>> import foo.bar.commands
Теперь я ожидаю, что он перейдет из текущего каталога в ./foo/bar/ и оттуда получит модуль команд. Что я получаю, хотя это
>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
Хотя из моего текущего каталога есть ./foo/bar/commands.py
Используя imp.find_module () и imp.load_module (), я могу правильно загрузить локальный модуль. Что действительно интересно (хотя я действительно не знаю, что это значит) - это последняя строка, которая выводится в этой последовательности
>>> import foo.bar.commands
>>> foo.bar.commands.__file__
'/usr/lib/python2.6/site-packages/foo/bar/commands.pyc'
>>> foo.bar.__file__
'/usr/lib/python2.6/site-packages/foo/bar/__int__.pyc'
>>> foo.__file__
'./foo/__init__.pyc'
Так что, если он может найти фу /в этом.pyc в локальном каталоге, почему он не может найти другие файлы в локальном каталоге?
ура