python - Emacs & Anaconda. Linking problems -


i have problem where:

  • in order run anaconda, need unset ld_library_path
  • in order run emacs (as other programs), need set ld_library_path

if try run emacs while unsetting ld_library_path run linking problems, e.g.

symbol lookup error: /usr/lib64/libpangocairo-1.0.so.0: undefined symbol: cairo_ft_font_options_substitute 

and run same problem if try load gedit or other programs. given this, unable use anaconda , emacs in same environment.

this prevents me using emacs packages such emacs-jedi (a great package editing , debugging python code) require functioning python environment (specifically emacs-jedi requires epc).

any ideas on how circumvent problem? (note: don't have root access)

update:

  • i have tried prepending $anaconda/lib current ld_library_path, also results in symbol errors described above.
  • i have tried updating $path , $ld_library_path on .emacs file, putting @ top no luck:

    (setenv "path" (concat "/home/josh/installs/conda/1.7.0/bin/:" (getenv "path"))) (setenv "ld_library_path" (concat "/home/josh/installs/conda/1.7.0/lib/:" (getenv "ld_library_path"))) 
  • here thread explains in more detail errors : linking problems anaconda when using ld_library_path

there several ways fix it, easiest (untested).

(defadvice jedi:start-server (around my-jedi:start-server-ld-library-path-hack                                      activate)   "unset ld_library_path when starting jedi server."   (let ((process-environment (mapcar #'identity process-environment)))     (setenv "ld_library_path")          ; unset $ld_library_path     ad-do-it)) 

if works, maybe better idea have in jedi.el. can imagine useful change ld_library_path project project.

one of other ways fix run jedi epc server outside of emacs (e.g., in terminal). way, can control environment variables. starter, see: http://tkf.github.io/emacs-jedi/latest/#jedi:toggle-debug-server


Comments

Popular posts from this blog

c++ - CryptStringToBinary API behavior -

c++ - Correct method for redrawing a layered window -

java.util.scanner - How to read and add only numbers to array from a text file -