您的位置:首页 > 运维架构 > Linux

Linux下非root用户安装Theano并配置GPU(以及集群上安装自己所需要的python依赖)

2018-01-20 22:39 851 查看
最近学校的集群更新了,只安装了一些基本的框架,但当我们自己跑代码时,往往会遇到缺少python包的问题,这时候由于我们没有集群的管理权限,只能把这些包安装到自己本地,因此下面就来介绍几中非root用户安装python包的方法。下面客官您就瞧好儿吧。

第一种方法

最方便的方法是自己本地先安装一个anaconda,这样即方便多python之间的版本控制,也能在安装其他python依赖时不用 –prefix 指定路径。粗暴的甩上anaconda的下载链接anaconda, 选择合适的下载版本,我这里下载的是Anaconda2-5.0.1-Linux-x86_64.sh.

1)安装anaconda

bash Anaconda2-5.0.1-Linux-x86_64.sh


在安装过程中会询问你是否默认anaconda的安装路径以及是否把anaconda添加到环境变量中去,你就一路回车一路yes 就搞定了。安装完成之后重启终端,这样anaconda才会生效。

你可以检验你安装anaconda之后默认python的位置,这时的python是我们安装anaconda里的。

which python
#### 我这里显示的是
# /home/chris_xy/anaconda2/bin/python


成功安装好anaconda之后,如果你需要其他的python包的时候,你可以自己下载该包,然后上传到你集群上, 然后直接运行下面这个代码就可以安装成功了,不再需要指定安装路径。

python setup.py install


2) 由于我的代码里需要theano, 这里我下载 theano包,同样甩上链接theano版本,选择合适的版本并下载。我下载的是Theano-rel-0.9.0rc1.zip,把下载的文件上传到集群上。

# 解压
unzip Theano-rel-0.9.0rc1.zip
# 安装 theano
cd Theano-rel-0.9.0rc1
python setup.py install
# 陪置 .theanorc
cd ~
vim .theanorc


这里贴上我的 .theanorc 里的内容, 其中的路径你要换成你的cuda的路径。

[global]
device=gpu
floatX=float32
root=/usr/local/cuda-8.0
[nvcc]
fastmath = True
[blas]
ldflags = -lopenblas
[cuda]
root = /usr/local/cuda-8.0
[nvcc]
optimizer_including=cudnn


然而这样配置完了之后,我运行了theano的代码,并没与调用gpu. 我们还需要将CUDA的路径添加到环境变量中。

vim ~/.bashrc
# 然后在最后添加下面两行, 注意CUDA路径要对
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib:/usr/local/cuda/lib64
# 退出保存之后, 是配置生效
source ~/.bashrc


这样就OK了。我的实验过运行theano代码,调用gpu成功。

第二种方法

上面的方法介绍的是安装时不用指定 –prefix 的安装方法。由于非root用户在使用 python setup.py install 时,会报权限不足的问题。

python 默认的安装路径是 /usr/local/lib/python2.7/dist-packages/, 这时我们可以

1)自己创建自己的site-packages目录

mkdir -p ~/.local/lib/python2.7/site-packages/


2)然后把该路径添加到环境变量中

echo "PYTHONPATH=$HOME/.local/lib/python2.7/site-packages" >> .bashrc
echo "export PATH=$HOME/.local/bin:$PATH" >> .bashrc
source .bashrc


3)接下来可以下载你需要的pyton依赖包,安装时需指定路径

python setup.py install --prefix=~/.local


这样就OK了。

文中说到的安装python依赖时,都是自己手动下载这些包。并没有 提用 pip 自动安装是因为集群上连不上网 [尴尬中~]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: