Я думаю, здесь много путаницы.Также много неопределенности с точки зрения того, как вы настроены с точки зрения того, как вы установили emacs, python и pydb.
pydb поставляется с кодом GNU Emacs, который подключается к пакету Emacs Lisp GUD (большой унифицированный отладчик)).Давайте пока оставим это в стороне, поскольку это не имеет никакого отношения к тому, что вы не можете запустить pydb скажем в оболочке emacs.
Я предполагаю, что вы устанавливаете pydb из исходного кода, поскольку в нем нет ez_install или eggдля этого.Когда вы запускаете скрипт «configure», а также «make» install, появляется некоторая информация, которая сообщает вам, где он собирается что-то установить и что происходит.Некоторое из этого важно отслеживать.
В качестве примера вот некоторая информация, которую я получил при запуске с терминала mingw внутри образа VMWare Windows XP:
$ ./autogen.sh
configure.ac:120: installing `./install-sh'
configure.ac:120: installing `./missing'
emacs/Makefile.am:22: installing `./elisp-comp'
...
Running ./configure --enable-maintainer-mode ...
checking for emacs... no
checking for xemacs... no
checking where .elc files should go... ${datadir}/emacs/site-lisp
checking for emacs... no
checking for emacs... no
checking where .elc files should go... (cached) ${datadir}/emacs/site-lisp
checking for a Python interpreter with version >= 2.4.0... python
checking for python... /c/Python27//python
checking for python version... 2.7
checking for python platform... win32
checking for python script directory... ${prefix}\Lib\site-packages
checking for python extension module directory... ${exec_prefix}\Lib\site-packages
...
Now type `make' to compile
$
И когда я запускаю «make install», некоторые из выводимых данных выглядят так:
$ make install
Making install in test
...
test -z "c:\Python27\lib\site-packages/pydb" || /bin/mkdir -p "c:\Python27\lib\site-packages/pydb"
...
test -z "c:\Python27\lib\site-packages/pydb" || /bin/mkdir -p "c:\Python27\lib\site-packages/pydb"
...
if ! test -d "/usr/local/bin"; then \
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"; \
fi
...
В приведенном выше примере вы видите, что пакет установлен в C: / python27 / Lib / сайт-пакеты .Вероятно, у вас там будет Python26, поскольку вы используете версию 2.6.
Кроме того, вышеприведенный вывод показывает, что скрипт pydb установлен в / usr / local / bin .
Отлично.Теперь мне нужно убедиться, что c: / Python27 / lib / site-packages установлен в переменной окружения PYTHONPATH, которая подается в sys.path.Чтобы увидеть, что находится в sys.path, выполните:
python -c 'import sys; print sys.path'
Поскольку у вас возникли проблемы, вы, вероятно, не найдете, где pydb установлен в sys.path.Итак, чтобы добавить, что вот команда экспорта, которую я использовал:
$ export PYTHONPATH='c:/Python27/lib/site-packages/pydb;.'
Теперь, когда я запускаю pydb , которая находится в / usr / local / bin as "make install ", как указано выше, я получаю:
$ /usr/local/bin/pydb test/gcd.py 3 5
(c:\cygwin\home\rocky\src\external-vcs\pydb\test\gcd.py:10): <module>
10 """
Не беспокойтесь о вышеприведенном материале cygwin, вот где у меня есть сценарий Python, который я хочу отладить.
Это было сделано внутри оболочки MinGW.Чтобы запустить в оболочке Emacs, это зависит от того, как Emacs был скомпилирован.
Наконец, после написания всего этого, позвольте мне сказать, что и pydb , и код Emacs, который подключается к GUD, теперь немного устарели.Более новый и лучший отладчик - pydbgr, доступный с http://code.google.com/p/pydbgr/, а новый и лучший код Emacs - на github.com/rocky/emacs-dbgr.Увы, оба требуют установки других пакетов Python или Emacs.На стороне Python есть яйца, чтобы упростить это, если вы не запускаете virtualenv.На стороне Emacs упаковка - увы, больше шагов.