Saya ingin mengimpor file python dan kemudian menggunakan fungsi di dalam file python; tetapi tidak berfungsi (hanya berfungsi untuk source_python). Apakah memang seperti ini?

Dalam file python bernama the_py_module.py menyertakan kode ini:

def f1():
  return "f one"


def f2():
  return "f two"

Skrip R

# Trying to import the python file, which appear to work:
reticulate::import("the_py_module")

Memberikan output ini: Module(the_py_module)

# But when calling the function: 
f1()

Saya mendapatkan kesalahan dengan mengatakan: Kesalahan di f1() : tidak dapat menemukan fungsi "f1"

Ini berfungsi menggunakan skrip python sumber.

reticulate::source_python("the_py_module.py")
f1()
4
John 7 Juli 2020, 20:16

1 menjawab

Jawaban Terbaik

Coba pendekatan berikut:

> library(reticulate)
> my_module <- import(the_py_module)
> my_module$f1()
[1] "f one"

Atau, menggunakan pendekatan Anda

> my_module_2 <- reticulate::import("the_py_module")
> my_module_2$f1()
[1] "f one"
1
Oo.oO 28 Juli 2020, 07:10