使用RStudio时导入python自定义模块

f45qwnt8  于 2023-06-04  发布在  Python
关注(0)|答案(2)|浏览(374)

我使用RStudio的Python和reticulate包。是否可以像在普通Python中一样创建自定义模块并导入它们?这是一个MWE:
我的自定义模块存储在一个名为test_class.py的文件中,并定义了Test类:

class Test:
  
  def __init__(self, name):
    self.name = name

我的主文件main.pytest_class.py位于同一个目录中,其中包含

from test_class import Test

x = Test("Bobby")
print(x.name)

如果我使用reticulate在RStudio中运行主文件,它会失败,并显示:ModuleNotFoundError: No module named 'test_class'。如果我用python(python main.py)在终端中运行它,它就能完美地工作。如何在RStudio中获得该行为?

kyxcudwk

kyxcudwk1#

我找到了罪魁祸首:reticulate在项目目录中查找import语句,而不是在进行导入的python文件的目录中查找。因此,您需要调整import语句中的路径。

0wi1tuuw

0wi1tuuw2#

就这样。我想这就是“本”所做的

require(reticulate)
test <- import_from_path(module = "test_class",path="path/to/file")

也可以试试(见答案:from import from python in reticulate

require(reticulate)
test <- import_from_path(module = "test_class",path="path/to/file")$Test

相关问题