【发布时间】:2021-03-21 08:40:24
【问题描述】:
我以前从未在 python 中使用过 R 代码,但我想这样做是为了实现一些 Poisson 回归模型。原因是效率(泊松回归的 R 代码效率更高)。我试图通过在终端中输入以下内容来安装 rpy2:
conda install -c r rpy2
我也尝试过使用 pip install ,但没有成功。当我尝试在终端中运行它时,它会在终端本身中返回以下错误:
解决环境:来自 current_repodata.json 的 repodata 失败,将使用下一个 repodata 源重试。 收集包元数据(repodata.json):完成 求解环境:初始冻结求解失败。使用灵活的求解重试。 求解环境:/ 发现冲突!寻找不兼容的软件包。 这可能需要几分钟。按 CTRL-C 中止。 失败
UnsatisfiableError: 发现以下规格 与您环境中现有的 python 安装不兼容:
规格:
- rpy2 -> python[version='2.7.|3.5.|3.6.|>=2.7,=3.5,= 3.6,=3.7,|3.3.*']
你的蟒蛇:python=3.8
如果 python 位于链的最左侧,那就是您要求的版本。 当python出现在右边时,这表明左边的东西不知何故 不适用于您受限的 python 版本。请注意,conda 不会 除非您明确指定,否则将您的 python 版本更改为不同的次要版本 那个。
使用 pip install 并运行一些引用 rpy2 模块的代码后,我收到以下错误:
import rpy2.robjects as robjects
import rpy2.robjects.packages as rpackages
from rpy2.robjects.vectors import StrVector
package_names = ('stats')
if all(rpackages.isinstalled(x) for x in package_names):
have_package = True
else:
have_package = False
if not have_package:
utils = rpackages.importr('utils')
utils.chooseCRANmirror(ind=1)
packnames_to_install = [x for x in package_names if not rpackages.isinstalled(x)]
if len(packnames_to_install) > 0:
utils.install_packages(StrVector(packnames_to_install))
OSError: 无法加载库 '/Users/name/opt/anaconda3/lib/R/lib/libR.dylib': dlopen(/Users/name/opt/anaconda3/lib/R/lib/libR.dylib, 2):库未加载:@rpath/libreadline.6.2.dylib 引用自:/Users/name/opt/anaconda3/lib/R/lib/libR.dylib 原因:找不到图片
NameError: 名称“rpackages”未定义
有谁知道我如何在我的 python 3.8 中成功使用 rpy2?这似乎是 anaconda 的常见问题,但我无法在网上找到任何可行的解决方案。非常感谢您提供的任何帮助!
【问题讨论】:
标签: python r anaconda rpy2 poisson