如何判断是否安装了Python setuptools?

时间:2013-10-17 15:03:12

标签: python pip setuptools

我正在编写一个快速的shell脚本,以便让我们的一些开发人员更轻松地运行Fabric。 (我也是Python的新手。)安装Fabric的一部分是安装pip,安装pip的一部分是安装setuptools。

有没有简单的方法来检测是否已经安装了setuptools?我想让它可以多次运行脚本,它会跳过它已经完成的任何事情。现在看来,如果你连续两次运行ez_setup.py,你第二次就会失败。

我的一个想法是在/ Scripts文件夹下查找easy_install脚本。我可以使用sys.executable猜测Python根目录,然后交换可执行文件名称本身。但我正在寻找一些更优雅的东西(也许是跨OS友好的)。有什么建议吗?

7 个答案:

答案 0 :(得分:19)

尝试使用此命令。

$ pip list

它会返回pipsetuptools的版本。否则尝试

$ pip install pil

如果这也不起作用,请尝试

$ which easy_install

答案 1 :(得分:10)

这不是很好,但它会起作用。

一个简单的python脚本可以进行检查

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

OR

try:
    import setuptools
except ImportError:
    print("Not installed.")
else:
    print("Installed.")

然后在调用脚本中检查它的退出代码

答案 2 :(得分:4)

只需将以下代码运行到IDLE:

import easy_install

如果它只是进入下一行,我认为它已安装。 如果它说:

Error: invalid syntax

然后它可能没有安装。 我知道这是因为我用它测试了点子。 另外,只需检查import pip以查看是否预先安装了pip。 :)

答案 3 :(得分: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'

答案 4 :(得分:1)

它预装了新版本的Python。

pip3 list

足以确定它已经为我安装了

答案 5 :(得分:0)

这将显示您的setuptools版本(如果已安装)

$python -c "import sys; import setuptools; print(setuptools.version.__version__)"

答案 6 :(得分:-1)

取决于安装的python版本。您可以尝试"pip list""pip3 list"并检查安装工具和安装的版本。