如何提供child_process.spawn
例如路径:
c:\users\marco\my documents\project\someexecutable
路径由最终用户从配置文件中提供。
var child_process = require('child_process');
var path = require('path');
var pathToExecute = path.join(options.toolsPath, 'mspec.exe');
child_process.spawn(pathToExecute, options.args);
目前只有child_process.spawn
我还尝试在路径中添加引号,如下所示:
var child_process = require('child_process');
var path = require('path');
var pathToExecute = path.join(options.toolsPath, 'mspec.exe');
child_process.spawn('"' + pathToExecute + '"', options.args);
然而,这会导致ENOENT
错误。
答案 0 :(得分:3)
第一个参数必须是命令名,而不是可执行文件的完整路径。有一个名为cwd
的选项可以指定进程的工作目录,也可以确保可执行文件可以将其添加到PATH
变量中(可能更容易)。
此外,传递给args
的{{1}}数组不应包含空元素。
你的代码应该是这样的:
spawn
答案 1 :(得分:0)
我经常使用spawn
,我解决问题的方法是使用process.chdir
。因此,如果您的路径为c:\users\marco\my documents\project\someexecutable
,那么您应该执行以下操作:
process.chdir('C:\\users\\marco\\my documents\\project');
child_process.spawn('./myBigFile.exe', options.args);
请注意双\
,以及它对我的影响。
答案 2 :(得分:0)
根据https://github.com/nodejs/node/issues/7367#issuecomment-229728704,可以使用def getTuple(s):
try:
s = eval(str(s))
if type(s) == tuple:
return s
return
except:
return
with open("filename.txt", "rb") as fp:
im_list = []
data_points = fp.read()
data_point_list = data_points.split("-")
for data_point in data_point_list:
im_list.append(getTuple(data_point))
# the code snippet from https://stackoverflow.com/questions/12062920/how-do-i-create-an-image-in-pil-using-a-list-of-rgb-tuples
im2 = Image.new(im.mode, im.size)
im2.putdata(list_of_pixels)
选项。
例如
> data = data.frame(name = c('Mike', 'Tony', 'Carol', 'Tim', 'Joe'), veh = c('car', 'bike', 'car', 'car', 'cycle') )
> data
name veh
1 Mike car
2 Tony bike
3 Carol car
4 Tim car
5 Joe cycle
> str(data$name)
Factor w/ 5 levels "Carol","Joe",..: 3 5 1 4 2
> str(data$veh)
Factor w/ 3 levels "bike","car","cycle": 2 1 2 2 3
> levels(data$veh)
[1] "bike" "car" "cycle"
会工作。