Yug*_*dle 4 python django virtualenv fabric virtualenvwrapper
我使用的virtualenvwrapper用virtualenv我的Django的deployement.以下是我的Fabric任务:
proj_path = '/path/to/proj'
def setup_code():
sudo('pip install virtualenvwrapper')
run('export WORKON_HOME=$HOME/.virtualenvs')
run('source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv myenv')
run('source /usr/local/bin/virtualenvwrapper.sh && workon myenv')
cd(proj_path)
req_file = os.path.join(proj_path, 'requirements.txt')
run('pip install -r %s' % req_file)
Run Code Online (Sandbox Code Playgroud)
我执行了上述fab任务,但表现得很奇怪.pip开始检索所有包,然后开始为它们执行安装文件.执行setup文件时崩溃说Permission denied.
但为什么?它的工作中~和virtualenv.
我究竟做错了什么?
弄清楚问题:
对于面料:
cd('dir') # doesn't works.
Run Code Online (Sandbox Code Playgroud)
以下作品:
with cd('dir'):
print('pwd') # Directory change reflects here.
Run Code Online (Sandbox Code Playgroud)
同样,其他环境因素如:
run('export WORKON_HOME=$HOME/.virtualenvs')
run('source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv myenv')
run('source /usr/local/bin/virtualenvwrapper.sh && workon myenv')
Run Code Online (Sandbox Code Playgroud)
但改为:
with prefix('WORKON_HOME=$HOME/.virtualenvs'):
with prefix('source /usr/local/bin/virtualenvwrapper.sh'):
with prefix('workon myenv'): # Assuming there is a env called `myenv`
run('pip install -r requirements.txt') # Works in virtualenv
Run Code Online (Sandbox Code Playgroud)
从官方文档中找出来:http://docs.fabfile.org/en/stable/api/core/context_managers.html
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |