我正在使用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