【发布时间】:2020-02-28 21:13:51
【问题描述】:
我想确保用户安装了 mysql 以便运行脚本。通常我会在 shell 中输入$ mysql,如果它进入mysql> 提示符,我知道我很好。但是,我将如何从 python 脚本中执行此操作?比如:
try:
assert (0 == subprocess.call("mysql -u root -e 'show databases'", shell=True, stderr=subprocess.DEVNULL))
except AssertionError:
print ("You need to install mysql to run this script")\
这样做的正确方法是什么?
【问题讨论】:
-
您(首先)检查的是客户端,而不是服务器。它真的需要在本地安装吗?你真的需要客户端,还是只需要一个服务器来连接?如果是后者,你可以尝试连接它,如果失败则显示错误。
-
@hdiogenes 我需要将数据库从远程机器复制到本地,所以我需要在本地安装数据库。
-
另外,您可以使用
subprocess.check_call,因此您不必使用assert。 -
@MattClark 是的,我想是的,尽管我认为提供的答案比其他页面上给出的任何答案都要好,至少对于 python3 而言。
标签: python mysql python-3.x