大家好,这是我在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)时,您将不必一遍又一遍地键入它。