2013-01-16 5 views
1

가능한 중복 :
Test if executable exists in Python?탐지 프로그램

는 프로그램이 컴퓨터에 설치되어 있는지 여부를 나를 감지 할 수있는 파이썬 기능이있다. .exe를 실행하는 프로그램이 있는데, 그 부분은 창에서 작동하지만 리눅스에서 실행하려면 와인이 필요합니다. 따라서 파이썬 함수가 와인을 감지 할 수있는 방법이 필요합니다.

+0

아마도 관련이 있습니다 : http://unixhelp.ed.ac.uk/CGI/man-cgi?which –

+0

가장 좋은 방법은 패키지 관리자를 쿼리하는 것입니다. 서로 다른 배포판에는 서로 다른 배포판이 있습니다. – Keith

답변

1

os.get_exec_path() 함수를 사용하면 PATH 환경 변수에 설정된 디렉토리 목록을 가져올 수 있습니다. 찾으려는 실행 파일이 이러한 디렉토리에 없다면 프로그램이 설치되어 있지 않다고 가정하는 것이 옳습니다.

이 코드는 다음과 같을 것이다 다음 설치 와인가 있는지를 냈다 : 변수 winePath에있을 것입니다 와인의 실행 파일 (wine)에 다음 경로가 설치되어있는 경우

import os 
winePath = None 
for directory in os.get_exec_path(): 
    testWinePath = os.path.join(directory, "wine") 
    if os.path.exists(testWinePath) and os.access(testWinePath, os.R_OK | os.X_OK): 
     winePath = executablePath 
     break 

; 찾지 못하면 winePathNone이됩니다. 코드는 파일에 읽기 및 실행을위한 정확한 퍼미션이 있는지 여부도 확인합니다.

os.get_exec_path()은 Python 3.2부터 사용할 수 있습니다. 이전 버전에서는 os.environ["PATH"].split(":")을 대신 사용할 수 있습니다.