setup.py 스크립트에서 설치를위한 임시 파일을 만들어야합니다. 그 (것)들을 두는 자연적인 장소는 "build /"디렉토리 일 것입니다.안정적인 방법으로 setup.py 내에서 "build"디렉토리를 얻으십시오
pypi, source, easy_install, pip 등에서 설치하는 경우 작동하는 경로를 검색하는 방법이 있습니까?
고맙습니다.
setup.py 스크립트에서 설치를위한 임시 파일을 만들어야합니다. 그 (것)들을 두는 자연적인 장소는 "build /"디렉토리 일 것입니다.안정적인 방법으로 setup.py 내에서 "build"디렉토리를 얻으십시오
pypi, source, easy_install, pip 등에서 설치하는 경우 작동하는 경로를 검색하는 방법이 있습니까?
고맙습니다.
기본적으로 distutils는 현재 작업 디렉토리에 build/
을 생성하지만 인수는 --build-base
으로 변경할 수 있습니다. setup
을 실행하고 분석 인수가 외부에서 액세스 할 수 없습니다 않을 때의 distutils 것 같다 그것을 구문 분석,하지만 당신은 스스로를 줄일 수 있습니다 :
import sys
build_base_long = [arg[12:].strip("= ") for arg in sys.argv if arg.startswith("--build-base")]
build_base_short = [arg[2:].strip(" ") for arg in sys.argv if arg.startswith("-b")]
build_base_arg = build_base_long or build_base_short
if build_base_arg:
build_base = build_base_arg[0]
else:
build_base = "."
알 수없는 플래그에 대한 처리 적절한 오류와 optparse
의 버전보다 여전히 짧은 파서의이 순진 버전을 . 또한 try_parse
메서드를 가지고 argparse
파서를 사용할 수 있습니다.
광범위한 답변을 제공해 주셔서 감사합니다. 불행히도이 문제는 해결되지 않습니다. 예를 들어 설치. "pip install package-name"은 전달 된 명령 줄 인수에서 얻을 수없는 일부 임시 디렉토리에 빌드 디렉토리를 작성합니다. 하지 (http://docs.scipy.org/doc/numpy-1.5.x/reference/generated/numpy.distutils.misc_util.Configuration.get_build_temp_dir.html) 불행하게도 : 나는이 라인을 따라 뭔가가 필요 시작되지 않는 distutils에 관하여 불평하기 때문에, 작동하지 않는다. 그러나 시작하자마자 컴파일이 시작됩니다. 그 전에 파일을 만들어야합니다. –
'build_base' 인자가'pip' invokation에 제공되지 않으면, 현재 작업 디렉토리에'build' 디렉토리가 생성됩니다 ('build_base'는'.'이됩니다). – mechmind
import os; os.path.abspath ('.')가 제대로 작동하지 않습니까? – Denis
문제는 pypi를 통해 설치하는 경우 빌드 디렉토리는 현재 작업 디렉토리의 하위 디렉토리가 아니며 반드시 스크립트가 실행되는 위치의 하위 디렉토리 일 필요는 없습니다. –