You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无root权限的Linux服务器安装numpy、keras、theano的技术问询

无root权限下在个人目录安装Python依赖库的可行方案

我之前刚好碰到过几乎一模一样的场景,给你几个亲测有效的方案,按推荐程度排序:

方案一:使用pip的--user参数直接安装

这是最简单直接的方法,pip--user参数会将所有依赖包安装到你的个人用户目录(默认路径是~/.local/lib/pythonX.Y/site-packages,X.Y对应你的Python版本),完全不需要root权限。

步骤:

  • 首先确保你用的是对应Python版本的pip(比如你要用Python3.5,就用pip3.5),避免装到Python2.7里:
    # 先升级pip到个人目录(如果pip版本太旧)
    pip3.5 install --user --upgrade pip
    
  • 安装所需依赖:
    pip3.5 install --user numpy theano keras
    
  • 验证:打开Python3.5控制台,输入import numpy,如果没有报错就说明安装成功。

注意:~/.local/lib/python3.5/site-packages默认已经在Python的sys.path里,如果你的环境没自动识别,可以在代码开头添加:

import sys
sys.path.append("~/.local/lib/python3.5/site-packages")

或者在终端设置环境变量:

export PYTHONPATH="$HOME/.local/lib/python3.5/site-packages:$PYTHONPATH"

可以把这条命令加到你的~/.bashrc~/.profile里,每次登录自动生效。

方案二:手动下载源码编译安装到个人目录

如果某些库用--user参数安装失败(比如需要编译但pip处理不好),可以手动下载源码包编译安装:

步骤:

  • 到对应库的官方仓库或PyPI页面下载对应版本的源码压缩包,上传到服务器的个人目录,或者直接用wget下载:
    wget https://github.com/numpy/numpy/archive/refs/tags/v1.18.5.tar.gz  # 举个适配Python3.5的numpy版本例子
    
  • 解压源码包:
    tar -zxvf v1.18.5.tar.gz
    cd numpy-1.18.5
    
  • 编译并安装到个人目录:
    python3.5 setup.py install --user
    
    或者指定自定义的安装目录(比如$HOME/my_python_libs):
    python3.5 setup.py install --prefix=$HOME/my_python_libs
    
    这种情况需要把自定义目录加到PYTHONPATH里,参考方案一的环境变量设置。

方案三:创建个人虚拟环境(推荐用于环境隔离)

如果需要和系统Python环境完全隔离,或者要安装多个版本的依赖,可以用virtualenv创建自己的虚拟环境,同样不需要root权限:

步骤:

  • 先安装virtualenv到个人目录:
    pip3.5 install --user virtualenv
    
  • 在个人目录创建虚拟环境(指定用Python3.5):
    virtualenv --python=python3.5 $HOME/my_keras_env
    
  • 激活虚拟环境:
    source $HOME/my_keras_env/bin/activate
    
    激活后终端会显示(my_keras_env)前缀,此时你用的pippython都是虚拟环境里的,直接安装依赖即可:
    pip install numpy theano keras
    
  • 退出虚拟环境:
    deactivate
    

提示:如果虚拟环境激活后pip版本太旧,可以先升级:pip install --upgrade pip

额外小技巧:用预编译wheel包跳过编译

如果源码编译遇到依赖缺失(比如服务器没有Fortran编译器,numpy编译失败),可以找对应Python版本和系统架构的预编译wheel包(.whl文件),然后用pip安装:

pip3.5 install --user path/to/numpy-1.18.5-cp35-cp35m-linux_x86_64.whl

你可以在PyPI上搜索对应库的wheel包,选择匹配你服务器系统和Python3.5的版本。

内容的提问来源于stack exchange,提问作者Batwoman05

火山引擎 最新活动