Linux安装pip没有权限,linux – 从没有root的python3远程安装pip

我正在尝试通过ssh为远程主机之一安装python3.我没有root访问权限.安装完成了:

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

tar xvzf Python-3.4.3.tgz

./configure --prefix=$HOME/.local

make

make install

这将安装Python 3,但是在安装结束时会发生此错误:

File "/home/someusername/Python-3.7.0/Lib/ctypes/__init__.py", line 7, in

from _ctypes import Union, Structure, Array

ModuleNotFoundError: No module named '_ctypes'

python3已安装,但pip安装失败.经过一些研究,似乎缺少libffi.使用wget获取libffi-3.2.1后,安装时使用:

./configure --prefix=$HOME/.local

make

make install

这表明它已安装:

someusername@a2plcpnl079 [~/.local/lib]$ls

./ ../ libffi-3.2.1/ libpython3.7m.a* pkgconfig/ python3.7/

someusername@a2plcpnl079 [~/.local/lib]$cd libffi-3.2.1/

someusername@a2plcpnl079 [~/.local/lib/libffi-3.2.1]$ls

./ ../ include/

someusername@a2plcpnl079 [~/.local/lib/libffi-3.2.1]$cd include

someusername@a2plcpnl079 [~/.local/lib/libffi-3.2.1/include]$ls

./ ../ ffi.h ffitarget.h

someusername@a2plcpnl079 [~/.local]$cd lib64

someusername@a2plcpnl079 [~/.local/lib64]$ls

./ ../ libffi.a libffi.la* libffi.so@ libffi.so.6@ libffi.so.6.0.4*

现在有必要重新配置python-3.7.0的构建,以便它使用本地libffi.我尝试了很多变种,但仍然无法安装pip.

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export HISTTIMEFORMAT="%d/%m/%y %T "

export PATH="$HOME/.local/bin:$PATH"

export LD_LIBRARY_PATH=$HOME/.local/lib64

尝试这样的事情:

$./configure --with-system-ffi --prefix=$HOME/.local LDFLAGS="-L/home/someusername/.local/lib64" LIBS="-L/home/someusername/.local/lib"

发生了同样的错误,所以问题是如何正确调用Python-3.7.0 configure以使用本地libffi库来完全安装python?

解决方法:

如果没有与Python安装捆绑的pip(可以通过python -m pip访问的那个),你可以使用configure –without-ensurepip取消选择它.通过这样做,您将不需要libffi来构建Python.安装完成后,像往常一样安装pip python包,例如使用easy_install pip,或下载并执行get-pip.py.

但是,您应该能够使用自定义libffi进行构建.我的建议未经测试:

$export LD_LIBRARY_PATH=$HOME/.local/lib64

$export LD_RUN_PATH=$HOME/.local/lib64

$./configure --prefix=$HOME/.local LDFLAGS="-L$HOME/.local/lib64" CPPFLAGS="-I $HOME/.local/lib/libffi-3.2.1/include"

$make

$make install

可选:在运行make install之前,请考虑执行测试:make test,这可能会发现更多错误或缺少库.

标签:python,linux,remote

来源: https://codeday.me/bug/20190814/1656113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值