-->

没有管理员权限安装rpy2(Installing rpy2 without admin privil

2019-08-16 21:12发布

我有安装Python包的麻烦rpy2 。 我已经编译R作为一个共享库,但我没有管理员权限的,所以我想用安装rpy2:

pip install -user rpy2

不过,我收到以下错误:

./rpy/rinterface/_rinterface.c:86:31:致命错误:的ReadLine / readline.h:没有这样的文件或目录

编译终止。

错误:命令“GCC”失败,退出状态1

我已经下载readline到:

/some/path/readline-6.2/

在那里我可以看到readline.h (我还编制readline以防万一)

我的问题:

我怎样才能让rpy2 (或PIP)知道此位置的readline.h避免头编译错误?

Answer 1:

你需要实际安装的readline,而不是下载它,然后点rpy2将它与CFLAGSLDFLAGS

试试这个办法。 这几乎是为我工作 - 我有同样的问题,只是rpy2似乎链接对系R,而不是我的主目录安装额外的皱纹。

首先,我下载的readline到~/src/readline-6.2 ,并安装它./configure --prefix=$HOME && make && make install 。 (你需要的地方安装它,而不只是下载源)。

然后我重新编译的R 2与

CPPFLAGS="-I/usr/local/include -I$HOME/include/" \
LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -L$HOME/lib64 -L$HOME/lib" \
./configure --prefix=$HOME --enable-BLAS-shlib --enable-R-shlib
make
make install

R的肯定现在使用的ReadLine:

$ ldd ~/lib64/R/lib/libR.so | grep readline
libreadline.so.6 => /home/dsutherl/lib/libreadline.so.6 (0x00007f8104207000)

同样对于我的家庭安装Python的(3.2.3,因为h5py不工作3.3还):

CFLAGS="-I/usr/local/include -I$HOME/include/" \
LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -L$HOME/lib64 -L$HOME/lib" \
./configure --prefix=$HOME
make
make install

然后再次:

$ ldd ~/lib/python3.2/lib-dynload/readline.cpython-32m.so | grep readline
libreadline.so.6 => /home/dsutherl/lib/libreadline.so.6 (0x00007fbfff5c2000)

于是我下载了rpy2源和建立了:

CFLAGS="-I/usr/local/include -I$HOME/include/" \
LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -L$HOME/lib64 -L$HOME/lib" \
python3 setup.py build --r-home $HOME/lib64/R install

这似乎成功, ldd荷兰国际集团的.so S IN site-packages/rpy2链接到正确的libreadline ......但到系统R而不是我的,尽管明确--r-home



Answer 2:

更简单 :

yum install readline-devel.x86_64

CentOS上运行我7

为Debian / Ubuntu的

apt-get install libreadline-dev


Answer 3:

有时在Linux需要一个sudo易于得到提升,得到的消息库,可能工作



Answer 4:

这是另一种选择,但也需要root privilegies ...命令和apt-get安装libreadline-dev的



文章来源: Installing rpy2 without admin privileges
标签: python r gcc rpy2