Knitr - ошибка при импорте модуля python

У меня возникают проблемы при запуске движка python в knitr. Я могу импортировать некоторые модули, но не другие. Например, я могу импортировать numpy, но не pandas.

{r, engine='python'} import pandas

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

Quitting from lines 50-51 (prepayment.Rmd) 
Error in (knit_engines$get(options$engine))(options) : 
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named pandas
Calls: <Anonymous> ... process_group.block -> call_block -> block_exec -> in_dir -> <Anonymous>
In addition: Warning message:
running command ''python'  -c 'import pandas' 2>&1' had status 1 
Execution halted

Это должно быть что-то делать с системным путем и где я указываю.

Обычно в IPython я использую

import sys
sys.path.append('/path/to/directory/')

Добавление путей. Я не знаю, в чем проблема.

Ответ 1

Использование:

{python engine.path="C:/anaconda/python.exe"}
import pandas

измените C: /anaconda/python.exe на свой путь к python.

Ответ 2

По какой-то причине он немного отличается от IPython

Следующие работали для меня.

Сначала я перешел на IPython и сделал следующее

import pandas
import os
path = os.path.dirname(pandas.__file__)
Out[4]: '/Users/glendonthompson/anaconda/lib/python2.7/site-packages/pandas'

Затем в Rstudio в файле .Rmd я запустил

```{r, engine='python'}
import sys
sys.path.append('/Users/glendonthompson/anaconda/lib/python2.7/site-packages/')
import pandas
```

Может быть, это что-то связано с anaconda, возиться с моими пакетами....

Это также верно с knitr, используя механизм python, который вы должны кэшировать, иначе он не сохранит код в предыдущих кусках?

```{r, engine='python'}
import sys
sys.path.append('/Users/glendonthompson/anaconda/lib/python2.7/site-packages/')
```

```{r,engine = 'python'}
import pandas
```

Не работает.

Ответ 3

Это случилось и со мной, в Атом.

Убедитесь, что оба файла находятся в одном каталоге. Поместите их в одну и ту же папку или путь.

Затем перейдите в Terminal или Command Line и введите

cd Downloads

(или любой другой большой каталог, в котором находятся файлы). Затем введите меньшую папку, например: cd _____, например, cd animals. Там вы можете открыть один файл, к которому вы хотите импортировать другой файл, набрав python3 -i ____.py (имя файла). Убедитесь, что файл имеет from ___(master file) import * и вы можете запустить код в терминале.

Это должно сработать. Проблема в том, что вы не можете импортировать, запустив код. Вместо этого вам нужно связать эти два терминала с помощью терминала или командной строки.