我有一个简单的Python脚本。 我想包含某种条件,以检查Python模块(在我的示例中为subprocess
)是否存在,然后再运行它。 如果该模块不存在,则安装该模块并运行脚本。 如果该模块存在,则跳过安装该模块并运行脚本。 我正在努力解决我在网上看到的大多数类似场景。
import subprocess
ls_output = subprocess.check_output(['ls'])
print ls_output
我有一个简单的Python脚本。 我想包含某种条件,以检查Python模块(在我的示例中为subprocess
)是否存在,然后再运行它。 如果该模块不存在,则安装该模块并运行脚本。 如果该模块存在,则跳过安装该模块并运行脚本。 我正在努力解决我在网上看到的大多数类似场景。
import subprocess
ls_output = subprocess.check_output(['ls'])
print ls_output
以下是如何检查是否安装了pycurl:
# if you want to now install pycurl and run it, it is much trickier
# technically, you might want to check if pip is installed as well
import sys
import pip
def install(package):
pip.main(['install', package])
try:
import pycurl
except ImportError:
print 'pycurl is not installed, installing it now!'
install('pycurl')
# not recommended because https://dev59.com/WGw05IYBdhLWcg3wYw5s
import pycurl
. . . .
# better option:
print 'just installed pycurl, please rerun this script at your convenience'
sys.exit(1)
subprocess
已经内置于 2.7 和 3.x 版本中。它在 2.4 版本中被添加。您不应该尝试在任何 2.4 或更新的版本上安装它。 - Brian Cainpip
、conda
、git
checkout 和setup.py
?另外,您会使用虚拟环境吗? - Paul Rooneysubprocess
来简化我的问题。实际模块是 pycurl。我希望脚本仅在安装了 pycurl 的情况下运行。如果没有安装,则通过 pip 安装后再执行。 - jebjeb