服务器配置虚拟环境、jupyter、常用命令

目录

  • 服务器配置虚拟环境、jupyter
    • 虚拟环境创建
    • 镜像源添加
    • 服务器配置jupyter,配置pycharm远程连接
      • 安装jupyter
      • 配置jupyter notebook远程访问
      • 将conda虚拟环境加入到Jupyter Notebook Kernel中
      • 配置pycharm远程访问
    • 安装pytorch的坑
    • 底层库升级
      • 解决Linux底层库glibc方法:
      • 解决C/C++底层库CXXABI:
    • GPU查看
    • Screen常用命令
    • Xshell下载上传文件

服务器配置虚拟环境、jupyter

由于服务器不是一个人在用且根据需求需要不同的环境,所以在服务器上安装虚拟环境就能方便解决。这篇主要记录在虚拟环境安装过程的方法及出现的问题。(根据网上大佬无私分享的总结)

虚拟环境创建

一般虚拟环境的创建用到一下命令:

conda create -n your_env_name python=x.x  (your_env_name是指你创建的虚拟环境的名字)

激活虚拟环境:

Linux:  source activate your_env_name

Windows: activate your_env_name

退出虚拟环境:

Linux:  source deactivate your_env_name
##若是出现deactivate命令没找到,则输入以下命令
conda deactivate

Windows:deactivate your_env_name #也可以使用`activate root`切回root环境

删除虚拟环境以及某个包:

conda remove -n your_env_name --all

conda remove --name your_env_name package_name  #删除某个包

查看全部虚拟环境:

##可以具体看到虚拟环境名字及所在位置v
conda info --envs

镜像源添加

激活后,根据自己需要安装包,一般来说用conda安装包,需要添加镜像源(加快下载速度)。主要推荐的是清华的镜像源,当然还有其他镜像源。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
#附加pytorch库
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/

若是使用pip安装包,则有两种方法。
第一种指定镜像源

#这两种都可以
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple 
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名

第二种永久添加镜像源
Linux:尝试修改 ~/.pip/pip.conf (如若没有需要自己创建): 在用户目录下输入 vi ~/.pip/pip.conf ,将下列内容输入到文件中(注意看是否输入完全了,没有则自己手动补上),然后按Esc键输入 :wq 保存退出vim,若此时不报错(E212: Can’t open file for writing),报错原因也是因为没有此文件

#先新建 .pip 文件夹,再新建文件 pip.conf
$ cd ~ 
$ mkdir .pip
$ cd .pip
$ vi pip.conf

#修改
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

Windows:直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

指定阿里云镜像源时,如若出现 报错***"The repository located at mirrors.aliyun.com is not a trusted … "*** 的情况 。

#一次性解决
pip install scrapy -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 

#永久解决,在pip.conf下添加
[global]
trusted-host=mirrors.aliyun.com

pip install出现问题,可用以下命令安装包:

python -m pip install 库名 

#服务器pip安装出错,只需要在install后加一个--user 
python -m pip install --user --upgrade pip==9.0.3

服务器配置jupyter,配置pycharm远程连接

服务器配置好后,更希望在本地码代码debug,故而需要远程连接服务,利用服务器的资源和环境。

安装jupyter

安装jupyter notebook (这个过程是接着激活环境后的)

conda install jupyter notebook

配置jupyter notebook远程访问

默认jupyter notebook 是不需要配置文件的。因此,需要用以下命令生成该文件。
主要配置一下内容:

  1. 设置远程访问密码
  2. 设置可访问ip,全局访问
  3. 禁用服务器端启动浏览器

生成配置文件

jupyter notebook --generate-config

如果是 root 用户执行上面的命令,会发生一个问题

Running as root it not recommended. Use --allow-root to bypass.

提示信息很明显,root 用户执行时需要加上 --allow-root 选项。

jupyter notebook --generate-config --allow-config

执行成功后,会出现下面的信息:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

打开ipython

ipython

生成密钥,passwd()后会让你两次输入密码(该密码作为客户端登录jupyter用,密钥后面配置文件用)

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:8361f5f08937:081cdf40730cb5548e2c213ddd36813a5313192f'

修改配置文件:(注意配置文件是python代码,故而要将修改的设置前面的#去掉

vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密钥'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

在本地上设置打开jupyter的浏览器

##Anaconda Prompt输入以下命令定位到配置文件所在位置
jupyter notebook --generate-config
##若是cmd输入也可以,但会出现让你重写配置文件的选项

##打开配置文件,在#c.NotebookApp.browser = ''
##后输入以下代码
import webbrowser
webbrowser.register("chrome",None,webbrowser.GenericBrowser(u"浏览器路径"))
c.NotebookApp.browser = 'chrome'

将conda虚拟环境加入到Jupyter Notebook Kernel中

conda install nb_conda  #安装插件即可

配置pycharm远程访问

服务器配置虚拟环境、jupyter、常用命令_第1张图片
点击选项“Tools”->“Start SSH session…”,选择对应服务器,即可以在pycharm下的Terminal打开服务器的终端。

安装pytorch的坑

使用conda命令安装pytorch会出现一个很难受的报错:
ImportError: dlopen: cannot load any more object with static TLS
找遍百度,stackoverflow上都没有解决,最后还是师弟在git中的一个讨论区找到了解决方法(向师弟学习)。这个bug是在服务器conda安装pytorch后,在cmd中import torch正常,但是在配置好的jupyter中则会报错。给出的方法是用pip安装pytorch。

conda uninstall pytorch #卸载conda安装的pytorch
pip install torch torchvision

底层库升级

若系统版本过低,则不支持pytorch,会出现报错:
在这里插入图片描述ImportError: /lib64/libstdc++.so.6: version ‘CXXABI_1.3.9’ not found(required by anaconda3/lib/python3.6/site-packages/scipy/sparse/_sparsetools.cpython-36m-x86_64-linux-gnu.so)

解决Linux底层库glibc方法:

查看当前可用版本:

strings /lib64/libc.so.6 |grep GLIBC_

用rpm升级到2.17(没有则下载rpm):

$ wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm
$ wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm
$ wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm
$ wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm

安装:

sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm \
glibc-common-2.17-55.el6.x86_64.rpm \
glibc-devel-2.17-55.el6.x86_64.rpm \
glibc-headers-2.17-55.el6.x86_64.rpm

解决C/C++底层库CXXABI:

查看当前可用版本:

strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'

进入python的安装路径下的lib文件夹,我的在~/anaconda3/lib,找到最新版的libstdc++.so.6:

ls |grep libstdc++.so.6

我这里是6.0.26

libstdc++.so.6
libstdc++.so.6.0.26

将最新版本复制到/usr/lib64/目录下,删除原来的libstdc++.so.6,并将最新版本命名为libstdc++.so.6,然后连接:

# 复制到
cp libstdc++.so.6.0.26 /usr/lib64/
# 进入目录
cd /usr/lib64
# 删除原来的库
rf -rf /usr/lib64/libstdc++.so.6
# 重新构建库
ln -s libstdc++.so.6.0.26 libstdc++.so.6

GPU查看

#查看服务器GPU的使用情况,英伟达的命令:
nvidia-smi

#cuda是否可用:
torch.cuda.is_available()

#返回gpu数量:
torch.cuda.device_count()

#返回gpu名字:
torch.cuda.get_device_name(0)

#返回当前设备索引:
torch.cuda.current_device()

Screen常用命令

由于使用远程连接的方式开启服务器上的Jupyter的,所以一旦关掉连接的终端,Jupyter也会关闭。这时就需要使用Screen工具让终端后台运行,保持Jupyter始终可以登录。

#查看当前的screen:
screen -ls

#创建一个screen,这时相当于打开了一个新终端:
screen -S {screen name}

#将当前screen后台,返回打开前的终端:
CTRL+A+D  #快捷键

#回到screen:
screen -r {screen name}

#关闭后台的screen:
screen -X -S {name you want to kill} quit

Xshell下载上传文件

在使用堡垒机链接服务器的时候,不能使用xftp上传下载文件(应该有方法,由于懒就没弄了),有xshell就足够了。

rz    ##弹出窗口选择要上传的文件,也可直接拖拉文件到xshell窗口

sz filename ##下载文件到本地

你可能感兴趣的:(笔记)