从scala执行python脚本在从命令行运行相同脚本时发出错误不会

时间:2017-08-01 22:27:27

标签: python python-2.7 scala python-3.x python-magic

这是我的python脚本:

!/usr/bin/python
   import sys
   import magic
   m=magic.from_file('<file with absolute path goes here>')
   print(m)

从命令行运行它:

$ python script.py
Microsoft Word 2007+

导致文件所在文档的 TYPE 输出。使用python-magic。

现在使用以下代码从scala运行相同的脚本:

import sys.process._
def compWithLibmagic(){
    val result = "python /script.py" !
}

抛出以下错误:

Traceback (most recent call last):
File "script.py", line 3, in <module>
import magic
ImportError: No module named magic

PS:我在我的机器上安装了python 2.7和python 3.6,并且从命令行使用其中任何一个运行脚本运行得很好,所以我猜它们都正确地与MAGIC包捆绑在一起。 /强>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我会尽力以最好的方式回答我自己的问题。

尝试使用python编译器 python2.7 从命令行执行script.py时正在尝试从scala编译器调用相同的script.py使用

import sys.process._
def compWithLibmagic(){
    val result = "python /script.py" !
}



它正在使用 python3 ,而未被注意。我花了几天时间才弄明白这一点,最后我删除了所有的python2.7和python3库,并再次安装了python 2.7。