5개의 Python 스크립트가 포함된 도구가 있습니다.파이,파이,파이,d.py그리고파이. 이 프로그램을 Linux에서 실행해야 합니다.파이다른 파일을 가져와서 사용하는 프로그램입니다. A.py를 실행하려면 다음 명령을 사용합니다.
$pythonA.py
지금까지 입력 및 출력 경로는 A.py에 하드코딩되었습니다. 이제 하나 써야지파일 생성모든 파일 구조와 종속성을 포함합니다. makefile에는 python scrip A.py를 실행하는 명령도 포함되어야 합니다. 명령이 호출 되고 make makefile
도구 실행이 시작되면 필요한 입력 및 출력 경로를 알아야 합니다. 어떻게 해야 하나요?
편집하다:
makefile은 모든 세부 사항을 포함하여 다음과 같아야 합니다.
INPUT_PATH = list of all input paths
FILES = list of .c files located in the above specified paths
OUTPUT_PATH = output path where generated file has to be stored
command to execute python scrip:
A.py inputpath+filename outputpath
따라서 새로운 입력 .c 파일이 있을 때마다 makefile 목록에 추가됩니다. 그러한 샘플 메이크파일을 제안해 주실 수 있나요?
답변1
Python에서는 대신에 명령줄 인수를 얻을 수 있습니다 sys.argv
.
#!/usr/bin/env python
base_dir = /hard/coded/path
당신은:
#!/usr/bin/env python
import sys
base_dir = sys.argv[1]
(수표를 넣는 것이 적절할 수 있습니다). Python 실행 프로그램을 명시적으로 사용하는 경우 첫 번째 줄을 생략할 수 있지만 실행 파일을 만드는 경우 A.py
해당 줄이 필요하므로 거기에 있어도 해가 되지 않습니다.
이제 다음에서 makefile
지정할 수 있습니다.
default:
python A.py /hard/coded/path
Tab( 앞에 8칸이 아닌 1칸이 있는지 확인하세요 python
.)
그런 다음 실행할 수 있습니다 ( Gnu make a가 없거나 동일한 디렉터리에 있지 않는 한 make
이 작업을 수행할 필요가 없습니다 ).make makefile
Makefile
GNUmakefile
답변2
여기서 나는 가장 우아한 접근 방식을 찾았습니다.파일 생성
속도:
- 여기서 변수를 정의하려면 다음을 사용합니다.Browser_PYSCRIPT
- 호출할 Python(또는 모든 언어) 스크립트를 입력합니다.
- 내보내기를 사용하여 스크립트 내보내기
- python -c "$$BROWSER_PYSCRIPT"를 사용하여 스크립트를 실행합니다.
생성된 파일을 실행합니다.
사용이 간편함:
- 브라우저를 만들어 보세요
define BROWSER_PYSCRIPT
import sys, os
print ('sys.argv[0] =', sys.argv[0])
pathname = os.path.dirname(sys.argv[0])
print ('path =', pathname)
print ('full path =', os.path.abspath(pathname))
endef
export BROWSER_PYSCRIPT
BROWSER:
python -c "$$BROWSER_PYSCRIPT"
결과:
-> make BROWSER [Thu Jun 11 23:13:45 2020]
python -c "$BROWSER_PYSCRIPT"
sys.argv[0] = -c
path =
full path = /Users/myPC/Desktop
답변3
기본서를 꼭 읽어보시길 추천드립니다파일 생성 튜토리얼.
기본적으로 원하는 것은 이러한 경우 변수처럼 작동하는 매크로에 경로를 넣는 것입니다.
예를 들어 DIR=/your/path
.
지침은 다음과 같습니다.
directive:
command
지시문의 이름이 이면 default
, 그렇지 않으면 all
명령줄에서 지시문을 명시적으로 호출하지 않고 실행됩니다. make directive
따라서 으로 전화할 필요는 없습니다 make
.
이제 명령 앞의 공백은~ 해야 하다탭 문자입니다. 또한 Makefile
를 입력하여 호출할 수 있도록 makefile의 이름(대문자 "M")을 지정하는 것이 좋습니다 make
.
이제 스크립트는 명령줄 인수(이 경우 디렉터리)를 받을 수 있어야 하며 다음과 같이 호출할 수 있습니다.
python A.py $(DIR)
DIR
올바른 디렉토리 이름을 가진 매크로 로 .
또한 다음 내용을 읽어 보는 것이 좋습니다.GNU 제작 매뉴얼
물론 Makefile에는 이 범위에서 설명하는 것보다 훨씬 더 많은 내용이 있습니다. makefile은 Linux 개발의 필수적인 부분이기 때문에 저는강하게최소한 기본은 마스터하는 것이 좋습니다!