簡體   English   中英

如何判斷是否安裝了 Python setuptools?

[英]How can I tell if Python setuptools is installed?

我正在編寫一個快速的 shell 腳本,以使我們的一些開發人員更容易運行 Fabric。 (我也是 Python 新手。)安裝 Fabric 的一部分是安裝 pip,而安裝 pip 的一部分是安裝 setuptools。

有沒有什么簡單的方法可以檢測 setuptools 是否已經安裝? 我想讓多次運行腳本成為可能,它會跳過已經完成的任何事情。 就目前而言,如果您連續運行 ez_setup.py 兩次,第二次就會失敗。

我的一個想法是在 /Scripts 文件夾下查找 easy_install 腳本。 我可以使用 sys.executable 猜測 Python 根目錄,然后交換可執行文件名稱本身。 但我正在尋找更優雅的東西(也許是跨操作系統友好的)。 有什么建議嗎?

試試這個命令。

$ pip list

它返回pipsetuptools的版本。 否則嘗試

$ pip install pil

如果這也不起作用,請嘗試使用

$ which easy_install

這不是很好,但它會起作用。

一個簡單的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.")

然后只需在調用腳本中檢查它的退出代碼

只需在 IDLE 中運行以下代碼:

import easy_install

如果它只是轉到下一行,我認為它已安裝。 如果它說:

Error: invalid syntax

那么它可能沒有安裝。 我知道這一點是因為我用它測試了 pip。 也只需檢查import pip以查看 pip 是否已預安裝。 :)

您可以通過運行以下命令行命令來檢查 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'

它預裝了新版本的 Python。

pip3 list

足以確定它是為我安裝的

如果已經安裝,這將顯示您的 setuptools 的版本

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

取決於安裝的 python 版本。 您可以嘗試"pip list""pip3 list"並檢查安裝的setuptools和版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM