2014-05-17 3 views
2

이미 존재하는 경우 스크립트를 덮어 쓰려고하지 않도록 setup.py를 어떻게 구성합니까? 또는 스크립트를 작성하는 데 실패 할 경우 나머지 패키지 설치를 마칠 수 있습니다. my setup.py에 setuptools를 사용하고 있습니다. setup.py의 관련 부분은 이것이다 :패키지의 setup.py에서 setuptools 사용 - 조건부로 스크립트를 설치하려면 어떻게합니까?

entry_points = { 
    'console_scripts' : [ 
     'green = green:main', # <-- The one I have problems with 
     'green%d = green:main' % sys.version_info[:1],  # green2 or green3 
     'green-%d.%d = green:main' % sys.version_info[:2], # green-3.4 etc. 
     ], 
}, 

my setup.py는 및 버전없는 스크립트 (파이썬의 버전은 스크립트의 이름에 포함 된) 두 버전 스크립트가 있습니다. OS X에서는 2.7 용 시스템 파이썬을 사용합니다.이 시스템에서는 py (sudo pip ...)를 실행하려면 수퍼 유저 권한이 필요합니다.이 경우 스크립트가 루트 소유권으로 /usr/local/bin 아래에 설치됩니다. 그런 다음 사용자 권한으로 homebrew를 통해 설치된 Python 3.4에서 설치를 시도 할 때 /usr/local/bin에 버전없는 스크립트를 덮어 쓰려고 시도합니다. 나는 그것이 스크립트 파일을 덮어 쓸 수 없다는 것에 상관없이, pip가 설치를 실패하고 반 설치 패키지를 이상하고 펑키 한 상태로 남겨 둡니다.

나는 setup.py가 이미 다른 것으로 설치 되었다면 스크립트를 설치하지 않거나 최소한 오류를 무시하고 설치가 끝난 후 나머지 설치를 계속하도록 할 수 있기를 바랍니다. 스크립트를 덮어 쓸 수있는 권한이 없습니다.

답변

0

표준 동작 setup 귀하의 요구 사항을 지원하는 경우, 나는 모릅니다.

하지만 확신은 할 수있는 다음 : 당신이 당신의 setup를 호출하기 전에 스크립트가 이미 존재하고있는 경우

는 확인 만

  1. 정말 무엇이 가능한지에 대한 setup 문의 다시 설치하거나 건너 뛸 수 있습니다. 당신은 파이썬 스크립트를 사용하고 있으므로, 파이썬의 힘을 손에 쥐고 상황을 조사하고 결정을 내릴 때 사용하십시오.

  2. setup을 호출 할 때는 entry_points 값을 구성해야합니다 (스크립트를 설치하거나 설치하지 않음).

어쨌든, 이것은 설치하는 스크립트가 이미 있는지 등을 업데이트하거나하지 않는다, 당신이 어디 있는지, 확인, 자신의 분석을 할 필요가 dificulty있다

실패하면 당신이 알고있는 경우에, 당신은 문제가 첫 번째 스크립트없이 설치하라는 확인할 수 있는지, 당신이 tryexcept에 넣어 수 setup이 funcion 적은

으로 요청, 당신이 원하는 무엇을 setup 물어보십시오 , 두 번째 시도는 이쪽으로 갈 수 있습니다.

+0

그래서 플랫폼 간 방식으로 작동하려면 setuptools를 호출하여이 시스템에 스크립트를 설치할 위치를 알아야합니다 (모든 시스템에서 같은 경로가 아님). 내가 그 길을 어디에서 발견 할 수 있었는지 아는가? 나는 setuptools API 문서를 검색했는데, [찾을 수없는 섹션] (https://pythonhosted.org/setuptools/setuptools.html#reusing-setuptools-code)과 [pkg_resources 문서] (https : // pythonhosted .org/setuptools/pkg_resources.html # api-reference) 유망 해 보였지만 어느 곳에서도 찾을 수 없었습니다. 어떤 아이디어? – Nathan

+0

@Nathan 설치 장소가 어디에도 없습니다. setuptools 코드를 확인하거나'setup' 호출을 제외하고 try를 사용합니다. 그러나 요즘에는 더 깊이 시험 할 시간이 없습니다. –