python os.system()和subprocess.call()生成32512或​​256个错误

时间:2014-10-27 05:10:44

标签: python os.system

我正在尝试从python运行命令行程序“oconv”,它希望将其他几个文件作为输入并生成输出文件scene.oct。

我尝试了 os.system() subprocess.call()函数

但是,我没有输出或输出文件不完整。

第一种类型的错误代码是 32512 127 ,意味着“密钥已过期”,第二种类型的错误代码是 256 1 ,表示“操作不允许”。

奇怪的是,所测试的所有4种类型的命令行字符串组合都可以在Mac OS X终端中正常运行。

我不知道为什么会出现这种情况,因为测试是在重新安装和更新的Macbook Pro上使用OS X Marvericks和Python 2.7.5完成的。并且相关的环境路径变量已经在〜/ .bash_profile 〜/ .profile 中指定(在这种情况下我是管理员)。

我用于测试的python代码如下所示,其中包括long / short cmd字符串和/或完整cmd路径之间的四种组合:

import os
import subprocess

### 1. long cmd str, no cmd path (no output, error code: 32512 or 127, meaning Key has expired)
##cmd = "oconv /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/materials.mat /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/sky.rad /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/scene.rad  >  /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/scene.oct"
##os.system(cmd)
##subprocess.call(cmd, shell=True)

### 2. short cmd str, no cmd path (no output, error code: 32512 or 127, meaning Key has expired)
##cmd = 'oconv ./materials.mat ./sky.rad ./scene.rad  > ./scene.oct'
##os.system(cmd)
##subprocess.call(cmd, shell=True)

### 3. long cmd str, full cmd path (can get incomplete output, error code: 256 or 1, meaning Operation not permitted)
##cmd = '/Applications/Radiance_4_3_a_1/bin/oconv /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/materials.mat /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/sky.rad /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/scene.rad  >  /Volumes/ZJ_WD_2TB_1/_ZJ_Urban_Toolkit_v003/glare_analysis/scene.oct'
##os.system(cmd)
##subprocess.call(cmd, shell=True)

### 4. short cmd str, full cmd path (can get incomplete output, error code: 256 or 1, meaning Operation not permitted)
##cmd = '/Applications/Radiance_4_3_a_1/bin/oconv ./materials.mat ./sky.rad ./scene.rad  > ./scene.oct'
###os.system(cmd)
##subprocess.call(cmd, shell=True)

0 个答案:

没有答案
相关问题