Как использовать функцию Python, определенную в отдельном файле в блоке Python в Rmarkdown? - PullRequest
0 голосов
/ 14 ноября 2018

Итак, у меня есть файл с именем 'function.py', который включает в себя простую функцию:

def square(x):
  return x*x

У меня есть второй бит кода, подобный этому:

from test import square
print(square(2))

ЕслиЯ сохраняю второй бит кода в файле Python и запускаю его в терминале, он работает и дает ожидаемый ответ.

Однако, если я добавлю кусок Python в документ Rmarkdown, например:

```{python}
from test import square
print(square(2))
```

Я получаю сообщение об ошибке:

"Трассировка (последний последний вызов): файл" /var/folders/g7/462tmml173nfzj0j8437t9_m0000gn/T/RtmptMA22N/chunk-code-48764cec023f.txt", строка 1, из тестового квадрата импорта ImportError: невозможно импортировать квадрат имени"

Файл Rmarkdown и файл python находятся в одном каталоге.Ответы о конкретном сообщении об ошибке касаются зависимостей, но я не понимаю, насколько это актуально в моем случае?

Я искал в Интернете и читал документацию, но мне кажется, что я упустил что-то важное.Спасибо за помощь!

Редактировать: Решено путем конкретного изменения пути к текущему рабочему каталогу.

import sys, os
sys.path.append(os.getcwd())
import test
print(test.square(2))

1 Ответ

0 голосов
/ 14 ноября 2018

Решено путем конкретного изменения пути к текущему рабочему каталогу.

import sys, os
sys.path.append(os.getcwd())
import test
print(test.square(2))

Ответ основан на Python: Лучший способ добавить в sys.path относительно текущего запущенного сценария .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...