我正在使用Fabric,并希望使用fexpect.我有以下Python脚本:
from ilogue.fexpect import expect, expecting, run (...) def install_postgresql(profile): print("!!! Installing PostgreSQL...") print(' -> Doing pre-cleanup...') # Remove PostgreSQL if it exists prompts = [] prompts += expect('Do you want to continue [Y/n]? ', 'Y') with settings(warn_only=True): with expecting(prompts): run('sudo apt-get purge postgresql') print(' -> Doing actual installation...') # Install PostgreSQL prompts = [] prompts += expect('Do you want to continue [Y/n]? ', 'Y') with expecting(prompts): run('sudo apt-get install postgresql') # In some cases PostgreSQL has issues with Ubuntu's default kernel params # that prevent PostgreSQL to start automatically, so we try to start it # TODO: Fix it with settings(warn_only=True): run('sudo service postgresql start')
执行时我收到以下错误:
[xxx.xxx.xxx.xxx] out: Traceback (most recent call last): [xxx.xxx.xxx.xxx] out: File "/tmp/fexpect_MbW3QP6Zpy5KBjBGQcaYxi", line 4, in[xxx.xxx.xxx.xxx] out: import pexpect [xxx.xxx.xxx.xxx] out: ImportError: No module named pexpect
我正在使用virtualenv,实际安装了pexpect:
(venv)PALM00545424A:woopup i841712$ pip install pexpect Requirement already satisfied (use --upgrade to upgrade): pexpect in ./venv/lib/python2.7/site-packages
mitchkman.. 16
找到了解决方案.
pexpect不是远程机器Python安装的一部分.
我只是执行了
sudo -E pip install pexpect
在远程机器上.
找到了解决方案.
pexpect不是远程机器Python安装的一部分.
我只是执行了
sudo -E pip install pexpect
在远程机器上.