【问题标题】:knitr - error when importing python moduleknitr - 导入python模块时出错
【发布时间】:2015-05-11 16:30:04
【问题描述】:

在 knitr 中运行 python 引擎时遇到问题。我可以导入一些模块,但不能导入其他模块。例如,我可以导入 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/')

添加路径。不知道是什么问题。

【问题讨论】:

  • 您是否也尝试将sys 与 knitr 一起使用?
  • 所以我首先尝试将 sys 与 knitr 一起使用,但它不像在 IPython 中那样工作,所以我尝试了一些更简单的方法,比如导入 pandas,但没有成功。但我能够导入其他包,例如numpy...知道为什么吗?
  • 您的包的来源是否在不同的地方?您可以使用 R 等效项,查看 Sys.getenv("path")
  • 你能发布你的包的分层描述吗?

标签: python r knitr sys reproducible-research


【解决方案1】:

用途:

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

C:/anaconda/python.exe 更改为您的python 路径。

【讨论】:

    【解决方案2】:

    这也发生在我身上,在 Atom 中。

    检查以确保这两个文件位于同一目录中。将它们放在同一个文件夹或路径中。

    然后,进入终端或命令行并输入

    cd Downloads

    (或文件所在的任何大目录)。然后,输入较小的文件夹,例如:cd _____,例如cd animals。在那里,您可以通过键入python3 -i ____.py(文件名)打开您希望将另一个文件导入到的一个文件。确保文件有from ___(master file) import *,你可以在终端运行代码。

    这应该可行。问题是您无法通过运行代码来导入。相反,您必须使用终端或命令行链接两者。

    【讨论】:

    • 是的,明白了。谢谢! ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2010-11-25
    • 2015-12-05
    • 1970-01-01
    相关资源
    最近更新 更多