我遇到问题:
LD_LIBRARY_PATH
LD_LIBRARY_PATH
如果我在取消设置Emacs
时尝试运行LD_LIBRARY_PATH
,我会遇到链接问题,例如
symbol lookup error: /usr/lib64/libpangocairo-1.0.so.0: undefined symbol:
cairo_ft_font_options_substitute
如果我尝试加载gedit
或其他程序,我会遇到同样的问题。鉴于此,我目前无法在相同的环境中使用Anaconda和Emacs。
这使我无法使用诸如emacs-jedi(一个用于编辑和调试Python代码的优秀包)的Emacs包,这些包需要一个正常运行的Python环境(特别是emacs-jedi需要epc)。< / p>
关于如何规避这个问题的任何想法? (注意:我没有root访问权限)
$ANACONDA/lib
预先添加到我当前的LD_LIBRARY_PATH
,但也会导致我上面描述的符号查找错误。我还尝试在我的$PATH
文件中更新$LD_LIBRARY_PATH
和.emacs
,将其放在顶部,没有运气:
(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")))
以下是更详细解释我收到的错误的主题:Linking problems with Anaconda when using LD_LIBRARY_PATH
答案 0 :(得分:1)
有几种方法可以修复它,但这可能是最简单的(未经测试)。
(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))
如果这样可行,也许最好将它放在Jedi.el中。我可以想象,有时将项目更改为LD_LIBRARY_PATH
是有用的。
修复它以在Emacs之外运行Jedi EPC服务器的其他方法之一(例如,在终端中)。这样,您就可以轻松控制任何环境变量。对于初学者,请参阅: http://tkf.github.io/emacs-jedi/latest/#jedi:toggle-debug-server
答案 1 :(得分:0)
可能你不需要为运行Anaconda而取消设置LD_LIBRARY_PATH,而是以这样的方式更改Anaconda库。
您是否尝试过LD_LIBRARY_PATH =。:$ LD_LIBRARY_PATH? (在属中不安全,但在这种情况下可能会有所帮助)
你用什么外壳? 如果你在没有设置LD_LIBRARY_PATH的情况下运行Anaconda会有什么错误? 你对LD_LIBRARY_PATH有什么价值?
你可以将emacs别名为“LD_LIBRARY_PATH = emacs”,这样emacs就有了正确的路径,但你的大多数其他二进制文件在该会话中都没用。
或者,您可以将anaconda二进制别名为“LD_LIBRARY_PATH =。”
答案 2 :(得分:0)
你为什么不这样做:
alias emacs="LD_LIBRARY_PATH='whatever' sh -c 'echo \$HOME'"
alias emacs="LD_LIBRARY_PATH='whatever' bash -c '/usr/bin/emacs \${@:0}'"
也许您必须更改/usr/bin/emacs
路径。
我从我尝试过的内容中得出它:
alias asdf="HOME=asf bash -c 'echo \$HOME \${@:0}'"