从 scala 执行 python 脚本给出错误,而 运行 从命令行执行相同的脚本不会
Executing a python script from scala giving error while running the same script from the command line does NOT
这是我的 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 包捆绑在一起。
非常感谢任何帮助。
我会尽量以最好的方式回答我自己的问题。
尝试使用 python 编译器从命令行执行 script.py
时 python2.7 正在使用,当我尝试使用
从 scala 编译器调用相同的 script.py
import sys.process._
def compWithLibmagic(){
val result = "python /script.py" !
}
它正在使用 python3,但 未被注意到。我花了几天时间才真正弄明白这件事,最后我删除了所有 python2.7 和 python3 库并再次安装了 python 2.7,它非常有效。
它适用于 python3 命令和 Scala 代码。
这应该有效。
import sys.process._
def compWithLibmagic(){
val result = "python3 script.py".!!
}
这是我的 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 包捆绑在一起。
非常感谢任何帮助。
我会尽量以最好的方式回答我自己的问题。
尝试使用 python 编译器从命令行执行 script.py
时 python2.7 正在使用,当我尝试使用
script.py
import sys.process._
def compWithLibmagic(){
val result = "python /script.py" !
}
它正在使用 python3,但 未被注意到。我花了几天时间才真正弄明白这件事,最后我删除了所有 python2.7 和 python3 库并再次安装了 python 2.7,它非常有效。
它适用于 python3 命令和 Scala 代码。
这应该有效。
import sys.process._
def compWithLibmagic(){
val result = "python3 script.py".!!
}