2013-10-17 7 views
10

Bazı geliştiricilerin Fabric'i çalıştırmasını kolaylaştırmak için hızlı bir kabuk komut dosyası yazıyorum. (Ayrıca Python için yeniyim.) Kumaşın bir parçası pip yüklemektedir ve kurulum pip'ünün bir kısmı setuptools'u yüklemektedir.Python setuptools'un yüklü olup olmadığını nasıl anlarım?

Kurulum araçları önceden kurulmuşsa, algılamanın kolay bir yolu var mı? Komut dosyasını birden çok kez çalıştırmayı mümkün kılmak istiyorum ve zaten bittiği her şeyi atlıyor. Şu anda olduğu gibi, ez_setup.py'yi iki kez üst üste çalıştırırsanız, ikinci kez bir hata alırsınız.

Bir fikrim,/Scripts klasörü altındaki easy_install komut dosyalarını aramaktı. Sys.executable kullanarak Python kökünde tahmin edebilir ve sonra yürütülebilir ismin kendisini değiştirebilirim. Ama ben biraz daha zarif bir şey (ve belki de çapraz-OS dostu) arıyorum. Baska öneri?

+1

deneyin deneyin test etmek için yüklendiği tespit etmek yeterliydi - bu orada değil :) –

cevap

8

Bu harika değil ama işe yarayacak.

Basit python komut dosyası kontrolünü

yapabilirsiniz
import sys 
try: 
     import setuptools 
except ImportError: 
     sys.exit(1) 
else: 
     sys.exit(0) 

Sonra sadece kontrol o

2

Eğer easy_install için kontrol edebilir ve aşağıdaki komut satırını çalıştırarak Setuptools komutları çağıran komut çıkış kod:

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 paketi kuruluysa, yukarıdaki ikinci komuttan elde ettiğiniz çıktı muhtemelen şu şekilde okunur:

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

Bu komutu deneyin.

$ pip list 

O pip ve setuptools hem sürümlerini döndürür. o da sonraki giderse

import easy_install 

: Bu da işe yaramazsa Aksi Sadece IDLE aşağıdaki kodu çalıştırın sonra

$ which easy_install 
+0

"Pip listesi" çalışıyor mu? Benim sistemimde bir komut vererek hata bulunamadı. Ayrıca düzenleme için hangi seçeneklerin mevcut olduğunu görmek için düzenleme yardımındaki Markdown sözdizimini de kontrol edin. – Sithsu

+0

Eski bir pip kullanıyormuşum gibi görünüyor. pip listesi 'pip 1.3 ile kullanılabilir. http://stackoverflow.com/questions/6600878/find-all-packages-installed-with-easy-install-pip – Sithsu

+0

Evet, işe yarıyor. Kurulabilir bir paket olarak, virtualenv'inizin içindeki setuptools sürümünü bilmek isteyebilirsiniz. – HugoFS

4

ile deneyin,

$ pip install pil 

ile deneyin hat, bence yüklü. o yazıyorsa :

Error: invalid syntax 

Sonra muhtemelen yüklü değil. Bunu biliyorum çünkü pip'le test ettim. Ayrıca pip önceden yüklenmiş olup olmadığını görmek için import pip kontrol edin.

0

Python'un yeni sürümleri önceden yüklenmiş olarak gelir.

pip3 list 

beni

3

herhangi modül yüklüyse bir hataya yol atarsa, easy_install ithal etmek bu

>>> import sys 
>>> 'setuptools' in sys.modules.keys() 
False