使用os.system或subprocess从Python调用“哪个程序”不返回路径
我在Python版本2.7.10中使用了macOS Sierra 10.12.16和Xcode 8.3.3。 我想从Python调用latex。 os.system('latex myFile.tex')不起作用,因为需要完整路径。所以我试图通过编程命令获得的路径。使用os.system或subprocess从Python调用“哪个程序”不返回路径
import os
import subprocess
batcmd = '/usr/bin/which latex'
thePath = os.system(batcmd)
print("The path: "+str(thePath))
p = subprocess.Popen([batcmd], stdout=subprocess.PIPE, shell=True)
print(p.stdout.read())
我从两个变化得到的结果是:
he path: 256
Program end
with exit code: 0
的系统命令提供数256.子命令导出一个空行。其他系统调用,如ls或dir工作正常。
我如何获得Python程序的路径?
有shutil.which
为蟒蛇3.3:http://docs.python.org/3.3/library/shutil.html#shutil.which
但这里有与Python 2的解决方法,让你的乳胶可执行文件的路径:
from distutils.spawn import find_executable
print find_executable('latex')
路径变量被包含在我的自定义仓迪尔斯,包括乳胶。
进口OS
os.environ [ “PATH”] + = os.pathsep + '的/ usr /本地/ .......'
打印(os.getenv(“PATH “))
应该假定路径未知。 –
usr/local/texlive/...是它与我的系统一起驻留在其他随texlive附带的可执行文件中的位置.... –
它没有工作。我得到答案没有。 –