我在两种不同的情况下发生了这两种情况,这两种情况都与使用pip
安装具有系统依赖性的模块有关。我遇到一个问题,我可以以root用户身份在外壳中pip install
放置一个python模块,但是当我在execute
块中放置相同的命令时,它失败了。这是一个示例:
PYCURL_SSL_LIBRARY=openssl /srv/python/venv/bin/pip install pycurl
那行得通,但是下面的代码块:
execute 'install pycurl' do
cwd '/srv/python/venv'
environment(
PYCURL_SSL_LIBRARY: 'openssl'
)
command '/srv/python/venv/bin/pip install pycurl'
end
给我有关curl-config
的以下错误:
---- Begin output of /srv/python/venv/bin/pip install pycurl ----
STDOUT: Collecting pycurl
Downloading https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz (214kB)
Complete output from command python setup.py egg_info:
Using curl-config (libcurl 7.29.0)
Traceback (most recent call last):
...
raise ConfigurationError(msg)
__main__.ConfigurationError: Neither curl-config --libs nor curl-config --static-libs succeeded and produced output
我尝试适当地设置PYCURL_CURL_CONFIG
变量,但得到的结果相同,无论如何我想弄清楚的是为什么我至少不会在该错误上得到相同的错误。命令行而不是pip安装成功。那有什么区别?