回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p><strong>tl;dr</strong>
我可以配置rpy2以便它加载conda安装而不是系统安装吗</p>
<p><strong>我的问题</strong></p>
<p>当我运行<code>rpy2</code>时,它使用R的系统安装,但它会从R的conda安装中反思并加载库。
这有各种各样的副作用,如断层等</p>
<p><strong>复制</strong></p>
<p>我在我的系统管理员安装的Ubuntu18服务器上安装了R。
我想将conda与python和rpy2结合使用,以确保可以自由选择版本</p>
<p>下面,您可以看到我在一个名为<code>(rnvp)</code>的conda环境中,<code>rpy2</code>标识了R的4.0.5 conda安装,但是<code>rpy2.robjects</code>库加载了system R安装,即4.0.3</p>
<p>当运行<code>situation</code>脚本时,我得到以下结果</p>
<pre><code>(rnvp) ludhu126@hyperion:~/real-nvp/real-nvp$ python
Python 3.9.6 (default, Aug 18 2021, 19:38:01)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpy2.robjects as ro
During startup - Warning messages:
1: package ‘methods’ was built under R version 4.0.5
2: package ‘datasets’ was built under R version 4.0.5
3: package ‘utils’ was built under R version 4.0.5
4: package ‘grDevices’ was built under R version 4.0.5
5: package ‘graphics’ was built under R version 4.0.5
6: package ‘stats’ was built under R version 4.0.5
>>> print(ro.r)
<rpy2.robjects.R object at 0x7f8f16ece8b0>
platform: x86_64-pc-linux-gnu
arch: x86_64
os: linux-gnu
system: x86_64, linux-gnu
status:
major: 4
minor: 0.3
year: 2020
month: 10
day: 10
svn rev: 79318
language: R
version.string: R version 4.0.3 (2020-10-10)
nickname: Bunny-Wunnies Freak Out
>>> import rpy2.situation
>>> for row in rpy2.situation.iter_info():
... print(row)
...
rpy2 version:
3.4.5
Python version:
3.9.6 (default, Aug 18 2021, 19:38:01)
[GCC 7.5.0]
Looking for R's HOME:
Environment variable R_HOME: /home/ludhu126/miniconda3/envs/rnvp/lib/R
Calling `R RHOME`: /home/ludhu126/miniconda3/envs/rnvp/lib/R
Environment variable R_LIBS_USER: None
R's additions to LD_LIBRARY_PATH:
R version:
In the PATH: R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Loading R library from rpy2: OK
Additional directories to load R packages from:
None
C extension compilation:
include:
['/home/ludhu126/miniconda3/envs/rnvp/lib/R/include']
libraries:
['R', 'pcre2-8', 'lzma', 'bz2', 'z', 'rt', 'dl', 'm', 'iconv', 'icuuc', 'icui18n']
library_dirs:
['/home/ludhu126/miniconda3/envs/rnvp/lib', '/home/ludhu126/miniconda3/envs/rnvp/lib/R/lib', '/home/ludhu126/miniconda3/envs/rnvp/lib']
extra_compile_args:
[]
extra_link_args:
['-Wl,--export-dynamic', '-fopenmp', '-Wl,-O2', '-Wl,--sort-common', '-Wl,--as-needed', '-Wl,-z,relro', '-Wl,-z,now', '-Wl,--disable-new-dtags', '-Wl,--gc-sections', '-Wl,-rpath,/home/ludhu126/miniconda3/envs/rnvp/lib', '-Wl,-rpath-link,/home/ludhu126/miniconda3/envs/rnvp/lib']
</code></pre>
<p>终端指向康达安装的R,实际上是4.0.5</p>
<pre><code>(rnvp) ludhu126@hyperion:~/real-nvp/real-nvp$ which R
/home/ludhu126/miniconda3/envs/rnvp/bin/R
(rnvp) ludhu126@hyperion:~/real-nvp/real-nvp$ R --version
R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-conda-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
</code></pre>
<p>在这个环境之外,我有来自<code>/usr/lib/R</code>的R4.0.3</p>
<pre><code>(rnvp) ludhu126@hyperion:~/real-nvp/real-nvp$ conda activate base
(base) ludhu126@hyperion:~/real-nvp/real-nvp$ which R
/usr/bin/R
(base) ludhu126@hyperion:~/real-nvp/real-nvp$ R --version
R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
</code></pre>
<p><strong>问题</strong>
我是否可以配置rpy2以使其加载conda安装</p>
<p><strong>关闭重复项</strong></p>
<ul>
<li><a href="https://stackoverflow.com/questions/31392238/how-to-install-rpy2-via-conda-using-default-r-installation">How to install rpy2 via conda using default R installation</a>希望使用本地安装而不是conda安装。它也适用于python 2.7版</li>
<li><a href="https://stackoverflow.com/questions/51486081/install-and-use-rpy2-using-conda-so-that-it-uses-default-r-installation-in-us">Install and use RPy2 (using conda) so that it uses default R installation in /usr/lib/R R</a>提到了其他问题,例如根本没有安装rpy2,绑定到lapack DLL的问题,或者没有设置R_HOME变量。所有这些对我来说都不是问题</李>
<li><a href="https://stackoverflow.com/questions/26675556/how-to-point-rpy2-to-existing-r-installation">How to point rpy2 to existing R installation?</a>表示该路径用于解析R安装。但我上面的<code>which R</code>表明这不是问题</李>
<li><a href="https://stackoverflow.com/questions/47271496/force-rpy2-in-conda-environment-to-use-the-r-outside-of-the-conda-environment">force rpy2 in conda environment to use the R outside of the conda environment</a>是关于加载错误的R库。但这很好——它会根据需要加载conda R安装库</李>
<li><a href="https://stackoverflow.com/questions/39347782/getting-segmentation-fault-core-dumped-error-while-importing-robjects-from-rpy2">Getting Segmentation fault Core dumped error while importing robjects from rpy2</a>建议卸载基本R安装。我不是系统管理员,不能这样做</李>
</ul>