Uncategorized

Linux/Windows下的WSL中conda的安装使用与卸载

最近在使用windows系统上的wsl(Windows Subsystem for Linux),为了更好的进行虚拟环境的管理,需要安装一下conda,所以有了这篇文章,系统地把整个流程贯穿起来。本文使用的环境是基于WSL中的Ubuntu 20.04LTS,如果你使用的不是WSL而是“正儿八经”的Linux,那也应该是一样的过程。 用wget命令下载最新的Miniconda3安装包 wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh 使用该命令后,最新的安装包已经下载到了你的当前目录中。 安装已经下载的安装包 以下有两行代码,第一行是添加权限,第二行是运行安装包。这是后文中连接给的建议,不过我在使用第一行的语句时出错,无法添加权限。实测直接运行第二行进行安装也是可以的。关于这里请大家根据自己的情况选择。 chmod 777 Miniconda3-latest-Linux-x86_64.sh sh Miniconda3-latest-Linux-x86_64.sh 在安装的开始部分,会提示阅读许可协议,此处长按“回车键”即可,一直到后边会变成询问“是否接受许可协议 Do you accept the license terms? [yes|no]” ,这里手动输入“yes”即可(不用加引号,输错了就按回车然后重新输入即可) 接下来会询问Miniconda的安装地址,一般使用默认的地址即可,所以直接按“回车键”就行(不要手动输入ENTER啊,我第一次安装的时候就莫名奇妙地手动输入了“ENTER”,结果安到了当前地址下的”ENTER“文件夹里。)请记住安装地址(下图红线中的位置,你的应该也类似),之后添加path会用到。 最后会询问是否需要初始化,这里输入“no”即可。网上大家一般都这么建议,我本来写的yes,不过实测好像并没什么用,还是要自己添加path,所以还是直接写no吧。 添加conda到path中 仅安装完应该还不能直接使用,不信的话可以运行conda测试一下,应该会返回没有该命令。这时我们需要编辑.bashrc文件把conda添加到path中,这里可以使用vim工具(vim的使用说明在本小节后边有简要说明): vim ~/.bashrc 然后在最下边一行把miniconda3的安装目录(上文请你记住的划红线的地址)作为环境变量保存到path,我所使用的命令如下,你只需要修改对应的地址即可。 export PATH=”/home/gaoxiang/miniconda3/bin:”$PATH 然后使用以下命令激活我们刚刚改动的.bashrc文件即可: source ~/.bashrc 如果你不熟悉vim的话,以下几个简单的命令会帮到你(不需要加方括号,仅写方括号之内的符号和字母): 插入(即编辑)[i] 强制保存并退出(先按ESC跳到命令模式),然后[:wq!] 不保存并强制退出(先按ESC跳到命令模式),然后[:q!] 按上述方法安装和激活后理论上conda命令会有正常返回了: 使用conda管理虚拟环境 为了直观起见,这里把最常用的几个conda命令罗列在一起,便于查阅。更多的关于conda的使用技巧请大家自行搜索。 #建立名为Py35的指定python3.5版本的虚拟环境 conda create -n Py35 python=3.5 #激活刚建立的名为的Py35的虚拟环境 activate Py35 #(在已激活的虚拟环境中)安装某个包XXX […]

Continue Reading

Technic

Windows电脑连接linux服务器跑python程序不显示图形的解决(使用Xming和putty)

我在使用windows系统的电脑通过pycharm在实验室的linux服务器上运行python程序的时候,无法正常显示图形,程序卡在plt.show()语句处;而在windows电脑本地运行程序没有问题。通过询问M同事得知使用windows系统连接linux服务器作图的话,需要使用Xming程序,并保证其一直在后台运行。这篇文章就介绍一下怎么设置Xming和putty从而实现可以正常显示图像。   Step 1: 下载Xming和putty 可以从这里下载Xming并按着提示进行安装。putty大家应该都有了,没有的话在这里下载并安装。网上有人建议Xming的安装地址中不要有空格和中文,可以参考一下尽量避免。   Step 2: 设置putty 运行putty之后首先在界面里输入服务器的ip,可以使用save功能对这个session进行保存,这样下次就可以用load直接调用了(例如我存为了titan)。然后非常重要的是要转到Connection->SSH->X11标签下进行设置,勾选Enable X11 forwarding并输入X display的location,例如 localhost:10.0 (注意:这里之后可能需要更改)     Step 3: 通过putty登陆服务器并进行测试 接下来通过putty登陆服务器,这里需要输入你在服务器的用户名和密码。成功登陆后运行xclock语句,由于我们还没有设置Xming服务器,这里会出现错误提示,例如 PuTTY X11 proxy: unable to connect to forwarded X server: Network error: Coion refused Error: Can’t open display: localhost:11.0  注意最后的localhost为11.0,因此我们退出putty并把上一步X11标签下的X display location改为localhost:11.0   Step 4: 运行XLaunch 注意是运行XLaunch不是Xming,因为我们需要进行一些设置。运行XLaunch之后在Display number里输入上一步最后提示的localhost的数字,比如这里为11,之后一路下一步就好。   Step 5: 再次使用xclock进行检查 重复Step 3使用xclock命令进行检查,设置正确的情况下会显示如下图的时钟。   Step 6: 在pycharm中对项目进行设置 在项目对应的环境变量中增加下图中红框里所示的变量,即Name为DISPLAY,Value为localhost:11.0。如此设置好之后,运行python文件即可正确显示图形结果了。   备注 使用过程中需要保证putty和Xming一直是运行状态 […]

Continue Reading

Technic

Linux下使用tmux进行分屏操作

之前看到S同事用同一个命令窗口对实验室server的GPU和进程进行监控,觉得很有意思,而且可以很高效的利用窗口。问了一下是用的tmux,于是今天实践了一下,非常有意思。同时在这里也感谢一下S同事跟我分享这些知识和相关的链接。   tmux的安装这里就不赘述了,下面我们直接来看下tmux的三个模块,即会话、窗口和面板: session 会话:一个服务器可以包含多个会话 window 窗口:一个会话可以包含多个窗口 pane 面板:一个窗口可以包含多个面板   使用tmux我们可以在同一个命令窗口中进行分栏(即不同的面板),比如上下分,左右分,并且可以分成好多不同的小区域进行不同的功能。例如这里我希望把一个命令窗分成上下两部分,上半部分监控GPU,下半部分监控系统的进程。   首先我们需要新建一个tmux session,可以使用命令tmux new-session -s work,最后的work为这个session的名字,建好之后只要不删除这个seesion,那么下次重新打开命令窗的时候,再次输入这个命令还会显示和上次一样的窗口设置,接下来我们就可以在这个session里使用tmux的功能了。   使用tmux的方式是先按快捷键组合,然后按功能键。比如默认的快捷键组合为ctrl+b,那么在同时按下ctrl和b之后,我们可以再按一个对应的功能键来实现希望的功能。具体就从分屏这个简单的例子说吧,如果我们想在窗口中进行上下分屏,我们就先同时按下快捷键组合ctrl和b,然后松开这两个按键,接下来我们按下双引号键”。这样屏幕就像下图一样被分成了上下两个部分。   现在屏幕被分成了两个部分,我们在这两个部分中分别写代码。需要提示的是,如果我们想从一个pane切换到另一个pane,可以使用ctrl+b然后按下方向键。现在大家看到上图中间的横线右半边是绿色,说明下半个pane是处于激活状态。同理,如果是上半个pane为激活状态,则左半边横线为绿色。   接下来我们使用Linux上的一点小技巧中介绍的方法,对GPU和进程进行监控。我们在上边的pane输入watch -n1 –color gpustat,在下边的pane输入htop,这样我们就得到了下图的结果:   目前我们虽然实现了对GPU和进程同时监控,不过窗口布局不是很好看,我希望把上半个pane缩小一点,下半个pane增大一点,这样可以更好的利用整个窗口。网上说的是可以使用ctrl+b后按着ctrl不放,并按方向键,不过我这里实验了发现不成功,依然成了切换pane。我用的是先按ctrl+b,然后使用alt+上/下键进行pane大小的调整。   理论上讲使用ctrl/alt加方向键是两种不同的调整方法: Ctrl+方向键 :以1个单元格为单位移动边缘以调整当前面板大小 Alt+方向键 :以5个单元格为单位移动边缘以调整当前面板大小 可是我这里只有第二种方法,即用alt+方向键的方法可以使用。   除了分屏的功能外,还可以使用tmux命令将两个命令窗的内容同步,也就是关联两个命令窗。更多关于tmux使用和功能的介绍可以参考以下两篇文章: Linux终端分屏工具tmux快捷键备忘 tmux cheat sheet   最后再附上一个所有功能键的示意图: 图片来源(LINK)

Continue Reading

Technic

Linux上的一点小技巧

这里提供几个使用Linux时可能会用到的小技巧,供大家参考:   监控GPU状态 首先要安装gpustat功能 pip install gpustat 单次显示GPU状态   gpustat  通过这个命令可以显示当前GPU的信息,如温度和使用率。如果有多块GPU,则所有GPU的信息都会显示。 每秒自动刷新显示GPU状态 watch -n1 –color gpustat   查看历史命令 直接输入history即可看到曾经输入的所有命令,是按照时间顺序排列的。   监控进程 使用htop命令可以对系统进程进行实时查看,并可通过诸多功能键进行操作。 htop常用功能键  F1 : 查看htop使用说明 F2 : 设置 F3 : 搜索进程 F4 : 过滤器,按关键字搜索 F5 : 显示树形结构 F6 : 选择排序方式 F7 : 减少nice值,这样就可以提高对应进程的优先级 F8 : 增加nice值,这样可以降低对应进程的优先级 F9 : 杀掉选中的进程 F10 : 退出htop / : 搜索字符 h […]

Continue Reading

Technic

在linux系统上设置虚拟环境Virtual Environment

背景:最近因为项目的需要,把电脑连到了实验室的大server上用来跑机器学习的python程序。实验室的server上已经预装了python 2.7和3.4两个版本,并且已经有了一些常用的包。   优点:虽然可以直接使用server上的python进行程序调试,不过同事还是建议我在server中我的文件夹下设置virtual environment,这样做最大的好处是我可以利用虚拟的python环境运行我的程序,也可以在必要时安装更多的包而不需要root权限。同时这些操作不会对其他同事的工作造成影响。虚拟环境设置好之后会生成一个文件夹,不需要的时候可以直接删掉,非常安全。并且也可以根据需要设置不同的虚拟环境,比如我分别设置了python2.7和3.4的虚拟环境。   具体操作: 下面进入正题,这里我使用的是Win10系统,并已经通过putty成功连接到了server中自己的目录下。 Step1:首先建立虚拟环境: virtualenv my_ENV   (此处my_ENV就是你给你设置的虚拟环境起的名字,可以自行修改) 需要说明的是,这一条语句是建立python 2虚拟环境使用的,如果想在虚拟环境中使用python 3, 则为virtualenv -p python3 my_ENV     Step2:设置好之后,我们通过 ls 命令就可以看到所在文件夹中多了my_ENV这个文件夹,这就是你的虚拟环境了。   Step3:激活这个虚拟环境: source my_ENV/bin/activate 这样我们就进入到这个虚拟环境中了,你会看到在putty的命令行的开头会多了一个括号,里边写着(my_ENV).   Step4:为了确保使用的python版本正确,可以用在命令行输入python并查看版本信息,之后可以用quit()命令退回到命令行。同时也可以使用which python命令查看目前使用的python的路径,确保是虚拟环境目录中的python。   Step5:接下来我们可以使用pip freeze命令看一下在这个虚拟环境中已经安装了哪些包。 由于我们还没有安装各种包,结果应该是空的。我们可以通过pip的命令进行各种常用的包进行安装,包括但不限于: pip install keras pip install matplotlib pip install pandas pip install tensorflow pip install sklearn   由于安装keras时会自动安装numpy,所以不需要额外用pip命令安装numpy了,许多其他的包也是一样的,比如scipy,six,pyyaml等等。   Step 6:最后,如果想退出目前的虚拟环境,只需要使用deactivate命令即可。下次再想进入虚拟环境的话,再次使用step […]

Continue Reading

Technic

Linux hotkeys

分节前边是我常用的,之后是从网上复制来但不常用或没有经过我验证的 history  显示命令历史列表 Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身) Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)   ctrl + l  清空屏幕    ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ctrl+b 光标向后移动一个字符,相当与<- Alt+f 光标向前移动一个单词 Alt+b 光标向后移动一个单词 ls !$ 执行命令ls,并以上一条命令的参数为其参数 Ctrl+a 移动到当前行的开头 Ctrl+e 移动到当前行的结尾 Esc+b 移动到当前单词的开头 Esc+f 移动到当前单词的结尾 Ctrl+l 清屏   Ctrl+d 删除光标所在处字符 […]

Continue Reading

Technic

Chrome快捷键(Windows/Linux版)

标签页和窗口快捷键 操作 快捷键 打开新窗口 Ctrl + n 在隐身模式下打开新窗口 Ctrl + Shift + n 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并跳转到该标签页 Ctrl + Shift + t 跳转到下一个打开的标签页 Ctrl + Tab 或 Ctrl + PgDn 跳转到上一个打开的标签页 Ctrl + Shift + Tab 或 Ctrl + PgUp 跳转到特定标签页 Ctrl + 1 到 Ctrl + 8 跳转到最后一个标签页 Ctrl + 9 在当前标签页中打开主页 Alt + Home 打开当前标签页浏览记录中记录的上一个页面 Alt + 向左箭头键 […]

Continue Reading