scons에서 일부 파이썬 스크립트를 설치하는 동안 템플릿 변수 ('$ (SOFTWARE_VERSION)')를 바꿀 수 있습니다. scons에는 이미 이러한 기능이 있습니까? 그렇지 않은 경우 설치하는 동안 scons 설치 프로세스에 연결하는 가장 좋은 방법은 무엇입니까?설치된 텍스트 파일의 텍스트를 SCons로 바꾸려면 어떻게해야합니까?
5
A
답변
0
템플릿 파일을 입력으로 사용하여 대체 된 데이터를 출력으로 생성하는 빌더를 정의 할 수 있습니다. 가장 유연한 방법은 빌더의 액션으로 파이썬 함수를 사용하는 것입니다. 이렇게하면 Python의 풍부한 정규 표현식 지원을 사용하여 대체를 수행 할 수 있습니다. 변수와 그 값에 관해서는 "env"인수에서 함수에 대한 구성 변수를 사용할 수 있습니다. 모든 변수가 구조 변수가되면 env.subst()를 사용하여 검색을 수행하고 바꿀 수 있습니다.
또는 일회용 인 경우 "sed"또는 유사한 프로그램으로 쉘 아웃하는 명령을 사용하여 모든 작업을 수행 할 수 있습니다.
6
Substfile
메서드를 사용할 수 있습니다. 이것은 입력 파일을 취하고 표시된 변수를 대체하는 출력 파일을 생성합니다. 그래서 당신은 script.py.in
있는 경우 : 당신은 문자열 '\$SOFTWARE_VERSION'
그렇지 않으면 SCons는 내부로 해석에서 $
을 탈출 할 필요가
env = Environment(tools=['textfile'])
script_dict = {'\$SOFTWARE_VERSION': '1.0'}
env.Substfile('script.py.in', SUBST_DICT = script_dict)
:
이#!/usr/bin/python
print "$SOFTWARE_VERSION"
는 그런 다음 출력을 생성하려면 다음 SConsctruct 파일을 사용할 수 있습니다 환경 변수. 결과는 다음 내용으로 파일 script.py
될 것이다 : 당신은 다음 env.Install
를 사용하여이 결과 대체 파일을 설치할 수 있습니다
#!/usr/bin/python
print "1.0"
.
관련 문제
- 1. , 파일의 행을 바꾸려면 어떻게해야합니까?
- 2. ASP.NET에서 파일의 이름을 바꾸려면 어떻게해야합니까?
- 3. vbscript를 사용하여 한 파일의 텍스트를 다른 파일의 텍스트로 바꾸려면 어떻게합니까?
- 4. Linux의 파일에서이 텍스트를 명령 줄에서 바꾸려면 어떻게해야합니까?
- 5. bash의 목록에있는 파일의 이름을 바꾸려면 어떻게해야합니까?
- 6. 정적 파일의 경로를 역순으로 바꾸려면 어떻게해야합니까?
- 7. Solaris에서 scons로 빌드 된 실행 파일의 스택 크기를 늘리려면 어떻게해야합니까?
- 8. SED를 사용하여 텍스트 문서를 검색하고 바꾸려면 어떻게해야합니까?
- 9. Ruby on Rails : 오이 : 필드의 텍스트를 바꾸려면 어떻게해야합니까?
- 10. 문자열 배열의 항목을 바꾸려면 어떻게해야합니까?
- 11. TreeView에서 노드의 이름을 바꾸려면 어떻게해야합니까?
- 12. Ant를 Maven으로 바꾸려면 어떻게해야합니까?
- 13. TableAdapter DataViews를 바꾸려면 어떻게해야합니까?
- 14. MFC CString을 바꾸려면 어떻게해야합니까?
- 15. htmlParser를 사용하여 속성을 바꾸려면 어떻게해야합니까?
- 16. Bash 스크립팅 : 처음에 숫자 문자를 삭제하도록 파일의 이름을 바꾸려면 어떻게해야합니까?
- 17. XAP에서 텍스트 파일의 텍스트를 읽는 방법?
- 18. SCons로 외부 코드 트리 만들기
- 19. 여러 텍스트 상자에 파일의 줄에있는 텍스트를 텍스트 상자에 어떻게 삽입합니까?
- 20. 무비 클립에서 색상을 바꾸려면 어떻게해야합니까?
- 21. 레일즈 앱을 플러그인으로 바꾸려면 어떻게해야합니까?
- 22. 파이썬에서 여러 번 바꾸려면 어떻게해야합니까?
- 23. R 개체의 이름을 바꾸려면 어떻게해야합니까?
- 24. ScrollViewer를 ListBox의 ContentPresenter로 바꾸려면 어떻게해야합니까?
- 25. 이 세마포어를 모니터로 바꾸려면 어떻게해야합니까?
- 26. ascx 컨트롤을 동적으로 바꾸려면 어떻게해야합니까?
- 27. 문자열의 특정 문자를 바꾸려면 어떻게해야합니까? =
- 28. Eclipse에서 문자를 새 행으로 바꾸려면 어떻게해야합니까?
- 29. SCons로 컴파일러 진단하기
- 30. 로드 된 SWF 파일의 텍스트를 javascript/AS3으로 업데이트하려면 어떻게해야합니까?