2015-02-24 115 views
0

我正在创建安装文件,首先检查是否已安装特定软件包,如果是,则打印它的版本,否则安装该软件包。验证安装,打印版本,如果已安装,否则安装该包

考虑nltk,我做的是这样的:

nltkv = '{}.'.format(nltk.__version__) 
if nltkv == '': 
    print "Nltk is not installed, Let's start installing .../n" 
    subprocess.call('sudo pip install -U nltk', shell = True) 
    #sudo easy_install pip 
else: 
    print "nltk is already installed, V : /n", nltkv 

,但为了这个,我需要做的import nltk

这样的情况下,如果尚未安装NLTK那么它给出了第一行错误:

File "setup.py", line 1, in <module> 
    import nltk 
ImportError: No module named nltk 

有几个这样的软件包需要验证和安装。我正在使用Ubuntu和Python

有更好的方法吗?

+2

可以赶上'ImportError'。 – 2015-02-24 13:06:19

回答

1

你可以这样做

import subprocess 
try: 
    import nltk 
    nltkv = '{}.'.format(nltk.__version__) 
    print "nltk is already installed, V : \n", nltkv # mind the escape sequence 
except ImportError: 
    print "Nltk is not installed, Let's start installing ...\n" 
    subprocess.call('sudo pip install -U nltk', shell = True) 
    #sudo easy_install pip 
except: 
    print "Some error occurred!\n"