我有一个python包需要安装在virtualenv中。这是一个虚拟服务器,由下面显示的 Chef Recipe 提供。我尝试了多种变体来激活 virtualenv 但没有骰子。任何指点表示赞赏。
python_virtualenv "/home/vagrant/myenv" do
interpreter "python2.7"
owner "vagrant"
group "vagrant"
action :create
end
directory "/usr/local/mysource" do
owner "vagrant"
group "vagrant"
mode 0755
action :create
end
git "/usr/local/mysource/django" do
repository "https://github.com/django/django"
revision "master"
action :sync
end
script "install_script" do
interpreter "bash"
user "vagrant"
cwd "/usr/local/mysource/django"
code <<-EOH
activate_env=os.path.expanduser("/home/vagrant/myenv/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
python setup.py install
EOH
end
最佳答案
我使用 python_pip在 virtualenvs 中安装 python 包的资源。这应该等同于 pip install -e 。
:
python_pip "/usr/local/mysource/django" do
virtualenv "/home/vagrant/myenv"
options '-e'
end
要在虚拟环境中运行其他命令(syncdb、collectstatic 等),我经常使用这种模式:
virtualenv = "/home/vagrant/myenv"
bash "install_website" do
code "#{virtualenv}/bin/python setup.py install"
user "vagrant"
cwd "/usr/local/mysource/django"
end
关于python - 通过 Chef Recipe 激活 virtualenv 并安装 python 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466953/