我正在编写一个基于Python的shell脚本来使用virtualenv,pip和fabric来构建一个Django应用程序.应该很简单,但似乎我无法通过shell脚本激活和运行virtualenv中的命令.
os.system('virtualenv %s --no-site-packages' % project_name) os.system('source %s/bin/activate' % project_name) os.system('easy_install pip')
运行时,出错:
$ startproject+ -s false sample New python executable in sample/bin/python Installing setuptools............done. /testing Searching for pip Best match: pip 0.4 Processing pip-0.4-py2.6.egg pip 0.4 is already the active version in easy-install.pth Installing pip script to /usr/local/bin error: /usr/local/bin/pip: Permission denied
显然这source
条线路没有运行,但为什么呢?它是一个并发/线程问题,还是更深层次的virtualenv?
谢谢!
每次调用os.system都会在新的子shell中运行该命令,该子shell具有与原始python进程相同的属性.
尝试将命令放入由分号分隔的一个字符串中.