Почему emacs не находит psql?



Это несколько странно, я скомпилировал из исходного кода postgresql. У меня не было никаких проблем с использованием psql вообще.



$ psql -d rita
psql (9.3.2)
Type "help" for help.

rita=>


`



Однако, когда я пытаюсь запустить M-x sql-postgres на emacs, он запрашивает пользователя, пароль, базу данных, хост. Но когда я ввожу данные в минибуфер, просто появляется: Unable to locate SQL program psql. Я надеюсь, что кто-нибудь может сказать мне, как я могу исправить это, или что происходит.

526   2  

2 ответов:

Ваш psql не находится на стандартном пути.

Вы, вероятно, устанавливаете PATH в ~/.bashrc, и Emacs не увидит его, если вы не запустите Emacs с терминала.

Решение таково:

(setq sql-postgres-program "/usr/local/pgsql/bin/psql")

Или ln -s до /usr/bin, Если хотите.

Кроме того, вы можете добавить путь к двоичному файлу psql в список exec-path вашего emacs следующим образом:

 (add-to-list 'exec-path "/path/to/program")
 (setenv PATH (mapconcat 'identity exec-path ":"))

Я запускаю Emacs на Mac в качестве среды разработки. Запуск emacs из док-станции не включает путь для программ, установленных через MacPorts. Это будет стандартная проблема для всех, кто имеет" нестандартные " элементы exec path и запускает Emacs через свой графический интерфейс. Для меня OSX: MacPorts : / opt / local/... сюда входят psql, mysql, py-flakes и другие. Я мог бы и так задайте переменную для каждой надстройки или измените exec-path. Setenv необходим там, где функция elisp откладывает поиск exec-пути к оболочке. Привязка C-c C-v в режиме python использует оболочку и среду $PATH для поиска py-хлопьев.

add-to-list - это простое решение, которое предваряет путь к списку. Можно было бы привести доводы в пользу более сложного пути пререканий в вашем .файл emacs. YMMV.

Comments

    Ничего не найдено.