繁体   English   中英

Emacs的组织模式:为了能够在Emacs守护程序中使用它,我必须将导出放在哪里?

[英]Org-mode with Emacs: Where do I have to put my export in order to be able to use it in Emacs daemon?

自从今天早上安装CUDA 9和cudnn 7之后,我一直在挣扎。我将emacs作为守护程序运行,将zsh作为默认外壳程序运行,并且我希望使用用户组织模式来编写笔记本。

这是我的.zshenv:

...
export LIBRARY_PATH="/usr/include/gtk-3.0:$LIBRARY_PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_FOUND"
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export SHELL="/bin/zsh"
export WORKON_HOME=$HOME/.virtualenvs

这是最小的笔记本:

#+BEGIN_SRC ipython :results drawer :async t :session test
  import os

  print(os.environ["LD_LIBRARY_PATH"])
#+END_SRC

问题是emacs不知道LD_LIBRARY_PATH。 它说KeyError。

您知道我可以在哪里放置环境变量,以便可以同时被终端和Emacs-As-A-Daemon读取吗? 我以为它在.zshenv和.zprofile中,但是它们都不在守护程序模式下工作(因为是的,当我定期启动它时,它就可以工作)。

精度:os.environ的内容表明它似乎只读取.profile文件...但是为什么呢? 我的默认终端是zsh,而不是bash。 我试图将导出文件放在.zprofile中,重新启动emacs的systemd守护程序,甚至重新启动,但没有任何效果。.很抱歉,这是一个愚蠢的问题。

好吧,我成功解决了我的问题。 我没有处理Emacs配置,而是通过添加EnvironmentFile变量更改了systemd单元文件,该变量将其设置为等于.zshenv的路径:

EnvironmentFile=~/.zshenv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM