2013-10-17 4 views
10

일부 개발자가 Fabric을보다 쉽게 ​​실행할 수 있도록 빠른 쉘 스크립트를 작성하고 있습니다. (필자는 Python을 처음 사용합니다.) Fabric을 설치하는 과정에서 pip를 설치하고 pip를 설치하는 과정에서 setuptools를 설치합니다.파이썬 setuptools가 설치되었는지 어떻게 알 수 있습니까?

setuptools가 이미 설치되어 있는지 쉽게 알 수 있습니까? 스크립트를 여러 번 실행할 수있게하고 싶습니다. 이미 완료된 내용은 건너 뜁니다. 현재 ez_setup.py를 두 번 연속 실행하면 두 번째 오류가 발생합니다.

내가 가진 한 가지 아이디어는/Scripts 폴더 아래의 easy_install 스크립트를 찾는 것입니다. sys.executable을 사용하여 Python 루트에서 추측 할 수 있으며 실행 파일 이름 자체를 바꿀 수 있습니다. 하지만 좀 더 우아하고 (아마도 OS 친화적 인) 뭔가를 찾고 있습니다. 어떤 제안?

+1

시도를하려고 테스트하기 위해 설치 한 식별에 충분했다 - 그것의 거기에 :) –

답변

8

위대한 것은 아니지만 효과가 있습니다.

간단한 파이썬 스크립트는 체크

을 할 수
import sys 
try: 
     import setuptools 
except ImportError: 
     sys.exit(1) 
else: 
     sys.exit(0) 

그럼 그냥 확인이

2

당신이 easy_install을 확인할 수 있습니다 및 다음 명령 줄을 실행하여 setuptools에 명령을 호출하는 스크립트의 종료 코드입니다 :

which easy_install 
#finds the path to easy_install if it exists 

less path/to/easy_install 
#where path/to/easy_install is the output from the above command 
#this outputs your easy_install script which will mention the version of setuptools 

easy_install/setuptools 번들이 설치된 경우 위의 두 번째 명령 출력은 다음과 같이 표시됩니다.

#EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c11','console_scripts','easy_install' 
16

이 명령을 사용해보십시오.

$ pip list 

그것은 pipsetuptools 모두의 버전을 반환합니다. 그냥 다음에 가면

import easy_install 

:이 또한 작동하지 않는 경우 그렇지 않으면 그냥 IDLE에 다음 코드를 실행 한 후

$ which easy_install 
+0

'pip list'는 작동합니까? 내 시스템에서 명령을 내리면 오류가 발견되지 않습니다. 또한 편집 도움말에서 Markdown 구문을 확인하여 편집에 사용할 수있는 옵션을 확인하십시오. – Sithsu

+0

나는 오래된 파이프를 달고있는 것 같아. 'pip list'는 pip 1.3에서 사용 가능합니다. http://stackoverflow.com/questions/6600878/find-all-packages-installed-with-easy-install-pip – Sithsu

+0

예, 작동합니다. 설치 가능한 패키지이므로 virtualenv 내부의 setuptools 버전을 알고 싶을 수 있습니다. – HugoFS

4

로 시도,

$ pip install pil 

으로 시도 선이 설치되어 있다고 생각합니다. 다음과 같이 표시되는 경우 :

Error: invalid syntax 

그러면 설치되지 않은 것 같습니다. 나는 이것으로 pip를 테스트했기 때문에 이것을 안다. pip가 사전 설치되어 있는지 확인하려면 import pip도 확인하십시오. :)

0

새로운 버전의 Python이 기본 설치되어 있습니다.

pip3 list 

3

모든 모듈이 설치되어있는 경우이 오류를 당신의 방법을 던졌습니다 경우, easy_install을 가져 오려면이

>>> import sys 
>>> 'setuptools' in sys.modules.keys() 
False 
관련 문제