Windows 터미널에서 Ghostscript를 호출하는 Python으로 scritp를 작성하고 있습니다.Python에서 Windows에 설치된 프로그램의 경로를 얻는 방법
나는 프로그램 창 (예를 들어, Ghostcript)에 설치되어있는 경로를 얻을 필요가모든 환경 변수 또는 경로를 얻을 수있는 다른 방법 (시스템 레지스트리가) 있습니다
?
솔루션 (@abarnert 응답 :이 winxp와와 WIN7 32 비트 시스템 작동
import winreg
program_to_found = 'Software\\GPL Ghostscript'
try:
h_key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, program_to_found)
try:
gs_version = winreg.EnumKey(h_key, 0)
h_subkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, program_to_found+'\\'+gs_version)
gs_dll = (winreg.EnumValue(h_subkey,0))[1]
print("Ghostscript %s is installed in: %s" % (gs_version, gs_dll.replace('gsdll32.dll', '')))
except OSError:
print("Ghostscript insn't correctly installed!! ")
except PermissionError:
print("Ghostsript not found!! ")
에서.
무엇이 필요합니까? Ghostscript의 경로가'% PATH %'에 있다면, 그냥 베어 메칭으로 실행할 수 있습니다. 그렇지 않은 경우 (즉, cmd 창에서 직접 사용할 수 없다면) Windows는 일반적으로 일반적으로 말할 수 없습니다. 하지만 ... Ghostscript가 예를 들어'.ps' 파일을 검색하면 레지스트리를 그렇게 검색 할 수 있습니다. 또는 항상 생성하는 알려진 레지스트리 항목이있는 경우 – abarnert
Ghostscript는 Win의 % PATH %를 변경하지 않습니다. Ghostscript를 호출 할 때 전체 경로를 부름이라고해야하며 스크립트의 % PATH %를 변경하고 싶지 않습니다. – Trimax
그렇다면 "설치된 프로그램의 경로를 가져 오는"일반적인 방법은 없습니다. 저의 이전 코멘트에 암시 된 바와 같이, 파일 형식 연결, .msi 설치 레코드 등에서 경로를 얻는 방법 또는 Ghostscript가 레지스트리에 저장하는 모든 사용자 지정 사항이 있습니다. 그러나 프로그램에 사용자 지정 .exe 설치 관리자가 있고 파일 형식 연결을 만들지 않고 레지스트리에 아무 것도 쓰지 않으면 찾아 볼 항목이 없습니다. – abarnert