Я пытаюсь работать в среде разработчика, но я нахожу проблемы в том, что 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'
Так что, если он может найти foo / init .pyc в локальном каталоге, почему он не может найти другие файлы в локальном каталоге?
Приветствия