从scala执行python脚本时出现错误,而从命令行运行相同的脚本不会导致错误
这是我的python脚本:从scala执行python脚本时出现错误,而从命令行运行相同的脚本不会导致错误,python,python-2.7,scala,python-3.x,python-magic,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魔术 现在使用下面的代码从scala运行相同的脚本: import sys.process._ def compWithLibmagic(){ val result =
!/usr/bin/python
import sys
import magic
m=magic.from_file('<file with absolute path goes here>')
print(m)
结果输出文件所在文档的类型。使用python魔术
现在使用下面的代码从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
回溯(最近一次呼叫最后一次):
文件“script.py”,第3行,在
进口魔术
导入错误:没有名为magic的模块
PS:我的机器上同时安装了python 2.7和python 3.6,并且使用它们中的任何一个运行脚本都可以从命令行正常运行,因此我猜它们都正确地与MAGIC软件包捆绑在一起。
非常感谢您的帮助。我会尽量用最好的方式回答我自己的问题 当我试图使用python编译器从命令行执行
script.py
时,正在使用python2.7,当我试图使用从scala编译器调用相同的
script.py
时
import sys.process._
def compWithLibmagic(){
val result = "python /script.py" !
}
它使用的是python3,而没有被注意到。我花了几天时间才真正弄明白这一点,最后我删除了所有的python2.7和python3库,并再次安装了python2.7,它工作得很好。当您从不同的文件夹运行
python/Users/Bhat/Documents/Spark/script.py时会发生什么?运行得很好。。
import sys.process._
def compWithLibmagic(){
val result = "python /script.py" !
}