我正在使用fabric来使用virtualenv部署应用程序。我上周使用fabric 1.4并升级到1.5.1。我的脚本停止工作。无法在使用Fabric的远程使用Virtualenv中的pip安装软件包
它无法安装要求。它似乎没有激活virtualenv。在我的代码,我有:
with cd('%(path)s' % env):
with prefix('source bin/activate'):
run('pip install -U distribute')
我得到一个权限被拒绝的错误:error: could not delete '/usr/local/lib/python2.7/dist-packages/pkg_resources.py': Permission denied
正在执行的命令是:
Executed: /bin/bash -l -c "cd /var/www/myproject && source bin/activate && export PATH=\"\\$PATH:\\"/var/www/myproject\\" \" && pip install -U distribute"
如果我ssh到远程计算机并运行cd /var/www/myproject && source bin/activate && pip install -U distribute
,它工作得很好。
为什么我的结构脚本不工作?
在此先感谢
我有轻微的怀疑,其面料实例化的virtualenv在目标主机上可能有不需要的结果。 – favoretti
根据这个链接,这是可能的,但我不明白我做错了什么。 http://stackoverflow.com/questions/1180411/activate-a-virtualenv-via-fabric-as-deploy-user – duduklein
那么,唯一的区别是,你使用'run()',而不是'sudo( )',这可能是一个权限问题。尝试使用'sudo()'? – favoretti