【问题标题】:How can I tell if Python setuptools is installed?如何判断是否安装了 Python setuptools?
【发布时间】:2013-10-26 03:46:12
【问题描述】:

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

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

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

【问题讨论】:

  • 尝试导入easy_install,如果它以你的方式抛出错误 - 它不存在:)

标签: python pip setuptools


【解决方案1】:

试试这个命令。

$ pip list

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

$ pip install pil

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

$ which easy_install

【讨论】:

  • pip list 有效吗?在我的系统中,它给出命令未找到错误。另请查看编辑帮助中的 Markdown 语法,了解哪些选项可用于编辑。
  • 似乎我正在运行一个较旧的点子。 pip list 可用于 pip 1.3。 stackoverflow.com/questions/6600878/…
  • 是的,它有效。作为一个可安装的包,你可能想知道你的 virtualenv 中的 setuptools 版本。
【解决方案2】:

这不是很好,但它会工作。

一个简单的python脚本就可以完成检查

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

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

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

【讨论】:

    【解决方案3】:

    只需在 IDLE 中运行以下代码:

    import easy_install
    

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

    Error: invalid syntax
    

    那么它可能没有安装。 我知道这一点,因为我用它测试了 pip。 也只需检查import pip 以查看是否预安装了 pip。 :)

    【讨论】:

      【解决方案4】:

      您可以通过运行以下命令行命令来检查 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'
      

      【讨论】:

        【解决方案5】:

        它预装了新版本的 Python。

        pip3 list
        

        足以证明它是为我安装的

        【讨论】:

        • 从源安装时没有为我预装
        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2012-07-09
            • 1970-01-01
            • 1970-01-01
            • 2010-09-16
            • 2012-06-25
            • 2023-04-06
            • 1970-01-01
            • 1970-01-01
            • 2017-09-21
            相关资源
            最近更新 更多