我正在编写一个基于 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 进程相同的属性。
尝试将命令放入一个由分号分隔的字符串中。
关于python - 通过 os.system() 激活 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691076/