我试图通过下面的代码用python反复执行一个外部程序。。。在
3 javarun='java -classpath /home/jrm6u/code/weka_dir/weka.jar'
4 java1='java'
5 java2='-classpath'
6 java3='/home/jrm6u/code/weka_dir/weka.jar'
7 weka_args='weka.clusterers.DBScan'
8 db_type='weka.clusterers.forOPTICSAndDBScan.Databases.SequentialDatabase'
9 db_dist='weka.clusterers.forOPTICSAndDBScan.DataObjects.EuclidianDataObject'
。。。在
^{pr2}$。。。在
^{3}$其中eps和min分别为0.125
和{
在执行python代码时,我得到以下错误:
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server.
进一步输出。这与我在bashshell中输入java
时得到的输出完全相同。这让我相信,不知怎么的,subprocess.call不是读每一个论点。是这样吗?我应该如何让它正确地计算这个命令?在
注意,这个命令可以手动正确地输入到shell中,但是使用这个脚本的动机是让它循环使用min
和{
我不认为它忽略了参数,但除非有必要,我会尽量避免Shell参数,有时它有奇怪的行为(与命令行解析相关,而不是python)。在
我对Java一无所知,但我敢打赌你给它的参数是错误的,这个输出错误告诉我们什么也没有(除了找到
java
并且它没有得到正确的参数,这并不意味着它没有得到任何参数)。在尝试调试传递到的词典subprocess.call(即使使用简单的print或
import pdb
并调用pdb.set_trace()
来获得上一行中的调试器),并检查带有这些参数的命令是否按预期工作。在我知道这不是一个恰当的答案,但这是太长的评论线。在
相关问题 更多 >
编程相关推荐