簡體   English   中英

使用網狀結構在 RStudio 中加載 Python 時遇到問題

[英]Trouble loading Python in RStudio with reticulate

我正在嘗試運行同時使用 R 和 Python 代碼塊的 R Markdown 文檔。 我使用的是 macOS Catalina 版本 10.15.2,R 版本是 3.6.2,RStudio 版本是 1.2.5033。 我正在使用reticulate包版本 1.14。

終端上的which python顯示/Users/dhirajkhanna/opt/anaconda3/bin/python並且在我的.Renviron文件中輸入相同的 RETICULATE_PYTHON RETICULATE_PYTHON=/Users/dhirajkhanna/opt/anaconda3/bin/python 奇怪的是,當我在我的 RStudio 控制台中執行Sys.which('python')時,它向我顯示了一條不同的路徑,即。 /usr/bin/python 當我加載reticulate包時, py_config()的輸出是:

python:         /usr/local/bin/python3
libpython:      /usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib
pythonhome:     /usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7:/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7
version:        3.7.4 (default, Jul  9 2019, 18:13:23)  [Clang 10.0.1 (clang-1001.0.46.4)]
numpy:          /usr/local/lib/python3.7/site-packages/numpy
numpy_version:  1.16.4

python versions found: 
 /usr/bin/python3
 /usr/local/bin/python3
 /usr/bin/python
 /usr/local/bin/python
 /Users/dhirajkhanna/anaconda3/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection1/bin/python
 /Users/dhirajkhanna/.virtualenvs/r-tensorflow/bin/python
 /Users/dhirajkhanna/venv/bin/python

如果我指定use_python('/Users/dhirajkhanna/opt/anaconda3/bin/python')py_config()的輸出是:

python:         /Users/dhirajkhanna/opt/anaconda3/bin/python
libpython:      /Users/dhirajkhanna/opt/anaconda3/lib/libpython3.7m.dylib
pythonhome:     /Users/dhirajkhanna/opt/anaconda3:/Users/dhirajkhanna/opt/anaconda3
version:        3.7.5 (default, Oct 25 2019, 10:52:18)  [Clang 4.0.1 (tags/RELEASE_401/final)]
numpy:          /Users/dhirajkhanna/opt/anaconda3/lib/python3.7/site-packages/numpy
numpy_version:  1.17.3

python versions found: 
 /Users/dhirajkhanna/opt/anaconda3/bin/python
 /usr/bin/python3
 /usr/local/bin/python3
 /usr/bin/python
 /usr/local/bin/python
 /Users/dhirajkhanna/anaconda3/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection/bin/python
 /Users/dhirajkhanna/.virtualenvs/object_recognition_detection1/bin/python
 /Users/dhirajkhanna/.virtualenvs/r-tensorflow/bin/python
 /Users/dhirajkhanna/venv/bin/python

現在,當我嘗試在 Python 代碼塊中加載 Python 包時,RStudio 崩潰了:

import pandas as pd
import matplotlib.pyplot as plt

我收到“R Session Aborted”消息。 在我升級 R 之前,所有這些都工作正常。知道如何糾正這個問題嗎?

編輯

在 R 中嘗試此操作時,出現分段錯誤:

> library(reticulate)
> repl_python()
Python 3.7.6 (/Users/dhirajkhanna/opt/anaconda3/bin/python)
Reticulate 1.14 REPL -- A Python interpreter in R.
>>> import pandas as pd

 *** caught segfault ***
address 0x0, cause 'memory not mapped'

Traceback:
 1: py_eval_impl(code, convert)
 2: py_eval("_", convert = FALSE)
 3: doTryCatch(return(expr), name, parentenv, handler)
 4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 5: tryCatchList(expr, classes, parentenv, handlers)
 6: tryCatch(py_eval("_", convert = FALSE), error = function(e) r_to_py(NULL))
 7: py_last_value()
 8: py_compile_eval(code)
 9: doTryCatch(return(expr), name, parentenv, handler)
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
11: tryCatchList(expr, classes, parentenv, handlers)
12: tryCatch(py_compile_eval(code), error = handle_error)
13: repl()
14: repl_python()

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 

我也嘗試過在 virtualenv 中運行不同版本的 Python (3.6),但仍然沒有任何樂趣。

全新安裝Rcppreticulate解決了這個問題。 更多細節在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM