python - 通过 Chef Recipe 激活 virtualenv 并安装 python 库

标签 python virtualenv chef-infra

我有一个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/

相关文章:

python - 在不同的 python 版本中使用 virtualenvwrapper-win 时出错

linux - 我应该把 "down"文件放在哪里以防止 Chef 启动

python - 如何选择不同级别的多个列?

python - Flask 路由传递参数返回错误

python - 未找到 Pyenv 列出的版本

linux - Chef 服务器安装问题

ruby-on-rails - 我可以将微型 cloudfoundry 实例作为生产服务器运行吗?或者, Chef/puppet ?

python - MongoDB 中的错误排序

python - 匹配空字符串的正则表达式?

python - 即使对于服务器上的单个基于 django 的应用程序,是否也建议使用 virtualenv?