2012-07-26 2 views
0

Windows 용으로 작성된 일부 GUI 프로그램을 Ubuntu 소프트웨어 센터에 가져오고 싶습니다. 내가 원하는 아니 내가 리눅스 (우분투)에서이 작업을 수행 할 수있는 방법을 알고 내가Python 및 Ubuntu의 명령 행 도구 호출

os.system(cmd) 

로 전화를 여러 외부 명령 행 도구를 사용하지 않는거야. 어떤 파일을 사용해야합니까? Windows에서 도구는 내 프로그램의 폴더에서 액세스 할 수 있지만 설치되지 않은 경우 Linux와 동일한 방식으로 작동합니까?

내가 필요한 도구는 모두 bioinformatic이며 primer3, blast, bowtie입니다.

도움을 주신 분께 감사드립니다. 그들은 시스템의 패키지 관리자를 사용하여 설치할 수 있도록

+0

우분투 커맨드 라인에서'primer3','blast' 또는'bowtie '를 입력하면'os.system' (또는 가능한'subprocess')이 예상대로 작동합니다. 바이너리를 "설치"하고 싶지 않은 이유가 있습니까? – Lenna

+0

사용자가 알지 못해도 여러 프로그램을 설치하는 것은 좋지 않습니다. 또한 파이썬을 통해 설치하는 방법을 모르겠습니다. 나는 도전적으로 사용자에게 추가로 3 가지 도구를 설치하라고 요청하지 않습니다. 더 쉬운 방법이 있습니까? – snowflake

+3

사용자가 Ubuntu에 생물 정보학 GUI를 설치하고 싶다면 커맨드 라인 툴을 사용하는 사람이 아닌가? 절대적으로 그것들을 종속물로 표시하고, 우분투 소프트웨어 센터는 사용자에게 알리고 자동으로 설치합니다. – Lenna

답변

2

리눅스에서, 당신은 일반적으로 응용 프로그램을 패키지 (예를 들어, 우분투와 레드햇에 대한 .rpm 포함 데비안 기반 배포판 .deb 파일). 한 가지 이유는 패키지 관리자가 의존하는 다른 패키지를 패키지 관리자에게 알릴 수 있기 때문에 의존하지 않는 경우 패키지 관리자를 설치할 수 있습니다. setuptools을 사용하면이 작업을 수행 할 수 있습니다. 이 경우 명령 줄 도구가 시스템 전체에 설치되고 응용 프로그램에서 호출 할 수 있습니다.

이렇게 할 수 없다면 필요한 도구의 소스 코드를 포함하고 컴파일하는 방법에 대한 지침을 제공 할 수 있습니다 (필요한 경우 응용 프로그램 디렉토리 내에 있음). 대부분의 현대 배포판에서는 다소 힘든 과정이지만 모범 사례는 아닙니다.


또 다른 참고 : os.system가 새로운 프로세스를 생성하고 종료를 기다린다, 차단하고 있습니다. stdout 또는 stderr 출력을 쉽게 얻거나 상호 작용할 수 없습니다. 당신은 subprocess 모듈 (파이썬의 표준 라이브러리의 일부) 또는 envoy (제 3 자 모듈)을 조사해야한다.이 모듈은 서브 프로세스 모듈에 대해 단순하고 (틀림없이) 더 강력한 인터페이스를 제공한다.

명령 줄 도구를 "자동화"하려면 pexpect을 사용하면 훨씬 쉬워집니다.

+0

아, 이것보다 더 나은 단어를 넣어 주셔서 감사합니다. – Lenna

+0

좋은 답변 주셔서 감사합니다. 당신은 어쩌면 의존성으로 생성 된 출력물을 어디에 저장할 지 말해 줄 수 있습니까? – snowflake

관련 문제