我正在尝试使用以下程序打开文件:
cmd = '"C:\\Program Files\\.....\\rizomuv.exe" "c:\\users\\.....\\temp\\ODRizomExport.obj"'
my_env = os.environ.copy()
my_env['LMX_LICENSE_PATH'] = 'xxxx@xx.x.x.xxx'
subprocess.Popen(cmd, env = my_env)
我需要为软件指定要打开的许可证服务器,但无论我做什么,我都会不断收到错误:
# TypeError: environment can only contain strings #
不管我是只通过license env路径还是通过整个os.env+license路径。它仍然不会继续
我错过了什么? 我在Maya中运行python,试图将我的geo放入RizomUV,但RizomUV需要浮动许可服务器位置才能启动
我意识到我的问题可能与此有关:Why does Popen fail on Windows if the "env" parameter contains a unicode object? 但我不确定如何将其应用到我非常简单的脚本中
比约恩
从注释中可以看出,OP的环境本身在相关代码之前已经损坏(包含非
str
键和/或值),或者,正如OP所建议的,可能包含非ascii字符(Windows上的一个问题),因为简单地调用subprocess.Popen(cmd, env=os.environ)
据说也会引发相同的错误您可以通过以下方式检查值是否为ASCII字符串:
仅当
s
是字符串且不包含任何非ASCII字符时,才会返回True
例如:
应用程序1:查找有问题的键/值:
应用程序2:您的代码,使用子流程的env子集:
相关问题 更多 >
编程相关推荐