我正在使用fabric来使用virtualenv部署应用程序。我上周使用的是面料1.4并升级到1.5.1。我的脚本停止了工作。
无法安装要求。它似乎没有激活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
,它就可以正常工作。
为什么我的布料脚本不起作用?
提前致谢
答案 0 :(得分:6)
而不是串行方法..
source bin/activate
pip install -U distribute
..直接使用virtualenv的pip可执行文件:
myenv/bin/pip install -U distribute
答案 1 :(得分:3)
虽然不完全是一个解决方案,fabtools有许多与virtualenvs相关的功能非常方便。他们(几乎)为你做了所有艰苦的工作,并且可能值得用来检查它是不是出了别的问题。
# Cut (and modified) from the fabtools documentation
from fabric.api import *
from fabtools import require
import fabtools
@task
def setup():
# Require a Python package
with fabtools.python.virtualenv('/home/myuser/env'):
require.python.package('pyramid')