簡體   English   中英

如何在安裝模塊時隱藏 Python 控制台?

[英]How to hide Python console while installing modules?

我怎樣才能制作一個可以靜默安裝模塊的腳本? 我已經嘗試過.pyw方法,但是在安裝模塊時它不起作用。

這是我所擁有的:

import os

os.system("pip install module1")
os.system("pip install module2")
os.system("pip install module3")

在這里我們必須考慮你試圖隱藏哪個 output : stdoutstderr

以下代碼將隱藏stdout 但仍會顯示 stderr。

import subprocess
batcmd = "pip install numpy"
result = subprocess.check_output(batcmd, shell=True)
>>> result
b'Requirement already satisfied: numpy in c:\\users\\xxxx\\appdata\\roaming\\python\\python38\\site-packages (1.20.2)\r\n'

以下將隱藏所有 output:
pip install numpy 1,2>nul

我認為您正在尋找 pip 中已經存在的 -q 或 --quiet 標志。但是,如果您像這樣使用一次標志,

pip install module1 -q

然后可能會出現任何警告、錯誤或關鍵日志記錄 output。

如果你想阻止所有 output 無論如何(包括所有級別的日志記錄),請使用 -q 標志三次,如下所示:

pip install module1 -q -q -q

為確保不提示您輸入(在 ay/n 提示情況下),請使用--no-input標志。

總之,您的新代碼應如下所示:

import os

os.system("pip install module1 -q -q -q --no-input")
os.system("pip install module2 -q -q -q --no-input")
os.system("pip install module3 -q -q -q --no-input")

-q文檔: https://pip-python3.readthedocs.io/en/latest/reference/pip.html#cmdoption-q --no-input文檔: https://pip.pypa.io/en/stable/ cli/pip/#cmdoption-無輸入

我認為您正在尋找的東西已經方便地存在於 pip 中:使用--quiet / -q標志:

pip install module1 --quiet

編輯:這似乎只給了 less output,並沒有完全沉默。

使用 Kailash E 的回答,您可以使用subprocess庫嘗試以下操作:

import subprocess

subprocess.call("yes|pip install module1 -q -q -q", shell=True)

暫無
暫無

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

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