TMUX 会话不会导入 Python 模块



大家好,这是我在StackOverflow上的第一个问题,我希望它能找到每个人。我最近开始使用TMUX,我在用它解决机器学习问题时遇到了问题。

我正在使用python创建一个程序,我正在使用sklearn模块。基本上,当我在终端中运行TMUX会话中的代码时,一切都很好。但是,当我启动TMUX会话并运行代码时,我得到了以下错误。

Traceback (most recent call last):
  File "hw1.py", line 5, in <module>
    from sklearn import svm
ImportError: No module named sklearn

由于某种原因,它找不到sklearn,即使它已经安装,它在TMUX会话之外工作得很好。这是我的进口声明。

import numpy 
import scipy.io
from sklearn import svm
from random import sample 

为什么在TMUX中找不到模块,我该如何解决这个问题?

我在OS x上遇到了同样的问题。似乎当您在非默认的蟒蛇环境中调用tmux时,PATH变量会变得混乱。如果我在调用source activate之前在一个新的终端中运行tmux,然后在tmux中激活我想要的环境,那么事情就会像预期的那样工作。不幸的是,有了这个解决方案,我必须记住在我在tmux中打开的每个窗格中调用source activate,所以这是一个不太理想的解决方案。

我通常使用Anaconda在MacOS上运行python脚本。使用

从conda环境返回本地(可能称为"(base)")

conda deactivate或source deactivate

tmux

可以成功导入python模块

@tomsgd的解决方案适合我。

但是,如果您需要自动执行此操作,只需执行以下操作

cd ~/  # go to the root folder
nano .bashrc  # edit the .bashrc file

并在文件的末尾添加任何您需要在新引导或新tmux 时运行的cmd(s)。例如,我在末尾添加了以下两行

source activate  # as mentioned above by @tomsgs
source activate pytorch  # to activate desired env

保存文件并退出。

下次您尝试使用Tmux(或boot)时,您将不必一遍又一遍地键入它。

相关内容

  • 没有找到相关文章