[英]How to import python packages using Reticulate in R
我已經學習python大約一年了。 我剛剛下載了 R 以嘗試將 Python 與Reticulate 一起使用。 我將所有 python 包 pip 安裝在名為base
的 anaconda 基礎環境中。 除了熊貓,我正在讓一切正常工作。 這是最離奇的事情。
這是我的代碼:
{r}
library(reticulate)
use_condaenv(“base”)
{python}
import numpy as np
import matplotlib.pyplot as plt
這很好用,我可以在 RStudio 中使用這兩個包。 但是,當我嘗試import pandas as pd
,出現錯誤
ImportError: No Module named pandas...
我肯定在這個基礎環境中安裝了 pandas pip 以及其他兩個包。 可以肯定的是,我再次對所有 3 個運行pip install
進行了仔細檢查。 為什么熊貓在世界上不起作用? 這太令人沮喪了! FWIW:seaborn(和其他軟件包)也不起作用,並且也已安裝。
也許您已經安裝了多個版本的 Python,並且如果在您運行pip freeze
時顯示它,您正在運行另一個版本。 我建議在您的項目文件夾中安裝virtualenv
以避免與其他包沖突。
pip install virtualenv
virtualenv venv
source venv/bin/activate
然后在里面安裝pandas。
pip install pandas
您也可以嘗試使用pip3
安裝 pandas。
你可以看看這個來源:
希望它有所幫助: R 接口到 Python
導入 Python 模塊
資料來源:R/python.R
導入指定的 Python 模塊以從 R 調用。
import(module, as = NULL, convert = TRUE, delay_load = FALSE)
import_main(convert = TRUE)
import_builtins(convert = TRUE)
import_from_path(module, path = ".", convert = TRUE)
參數
模塊
模塊名稱
作為
模塊名稱的別名(影響 R 類的名稱)。 請注意,這是一個高級參數,通常只應在包開發中使用(因為它會影響導入類的 S3 名稱,因此會干擾 S3 方法分派)。
轉變
TRUE 自動將 Python 對象轉換為它們的 R 等效對象。 如果傳遞 FALSE,則可以使用 py_to_r() 函數進行手動轉換。
延遲加載
TRUE 延遲加載模塊直到它被第一次使用。 FALSE 立即加載模塊。 如果提供了函數,則在加載模塊后將調用該函數。 如果提供了包含 on_load() 和 on_error(e) 元素的列表,則在成功加載時將調用 on_load(),如果發生錯誤,將調用 on_error(e)。
小路
導入路徑
價值
一個 Python 模塊
細節
import_from_path 函數從任意文件系統路徑(指定 python 腳本的目錄自動添加到 sys.path)中導入 Python 模塊。
例子
if (FALSE)
{
main <- import_main()
sys <- import("sys")
}
好像您正在使用基於“框架”輸出的 Mac。 Python 2.7 是 Mac 上的基礎版本。 最好的辦法是安裝 Anaconda3,它將創建一個單獨的新基礎環境。
對於網狀結構,您需要 PyQt5 來使用 R Markdown 渲染 Python。 因此,請執行以下步驟進行設置:
conda create --name cloned_env --clone original_env
所以它看起來像這樣conda create --name reticulate --clone base
conda activate reticulate
激活環境pip install PyQT5
進入網狀環境現在檢查你的 Python:
which python3
這將為您提供一條路徑中包含Anaconda3
的路徑。 在標准(文檔)目錄中創建一個名為.Renviron.txt
的文本文件
添加以下代碼:
RETICULATE_PYTHON="your path from which python3"
例如,我的如下,你的應該是 anaconda 的:
RETICULATE_PYTHON="/anaconda3/bin/python"
它也可能是
RETICULATE_PYTHON="/anaconda3/envs/reticulate"
然后,當您啟動 RStudio 時,您應該擁有所需的一切。
有據可查的是,此命令不起作用:
use_condaenv(“base”)
在 R 中,檢查命令Sys.getenv()
它應該確認您的 RETICULATE_PYTHON 變量設置為您在 .Renviron 文件中指定的路徑。
在這個鏈接上有更多關於這個的討論:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.