0

从今天早上安装 CUDA 9 和 cudnn 7 之后,我一直在苦苦挣扎。我将 emacs 作为守护进程运行,zsh 作为我的默认 shell,我想使用 org-mode 来编写笔记本。

这是我的 .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 守护程序,甚至重新启动,但没有任何效果。如果这是一个愚蠢的问题,对不起。

4

1 回答 1

1

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

EnvironmentFile=~/.zshenv
于 2019-01-23T21:38:12.783 回答