이미 존재하는 경우 스크립트를 덮어 쓰려고하지 않도록 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가 이미 다른 것으로 설치 되었다면 스크립트를 설치하지 않거나 최소한 오류를 무시하고 설치가 끝난 후 나머지 설치를 계속하도록 할 수 있기를 바랍니다. 스크립트를 덮어 쓸 수있는 권한이 없습니다.
그래서 플랫폼 간 방식으로 작동하려면 setuptools를 호출하여이 시스템에 스크립트를 설치할 위치를 알아야합니다 (모든 시스템에서 같은 경로가 아님). 내가 그 길을 어디에서 발견 할 수 있었는지 아는가? 나는 setuptools API 문서를 검색했는데, [찾을 수없는 섹션] (https://pythonhosted.org/setuptools/setuptools.html#reusing-setuptools-code)과 [pkg_resources 문서] (https : // pythonhosted .org/setuptools/pkg_resources.html # api-reference) 유망 해 보였지만 어느 곳에서도 찾을 수 없었습니다. 어떤 아이디어? – Nathan
@Nathan 설치 장소가 어디에도 없습니다. setuptools 코드를 확인하거나'setup' 호출을 제외하고 try를 사용합니다. 그러나 요즘에는 더 깊이 시험 할 시간이 없습니다. –