2012-02-28 3 views
3

Я начинаю пирамиду.Как развернуть приложение Pyramid с помощью pserve без установки?

Я хочу развернуть Pyramid на своем производственном сервере. У меня есть сценарий развертывания, использующий Capistrano для этого.

set :pid_path, "/var/lib/#{application}" 
set :log_path, "/var/log/#{application}" 

namespace :deploy do 

    task :restart, :roles => :app do 
    end 

    task :finalize_update, :roles => :app do 
     run "cd #{release_path} && python setup.py build" 
     %w[ 5000 5001 ].each do |port| 
      run "if [ -f #{pid_path}/#{port}.pid ]; then paster serve --stop-daemon --pid-file=#{pid_path}/#{port}.pid; fi" 
      run "paster serve --daemon --pid-file=#{pid_path}/#{port}.pid --log-file=#{log_path}/paster.log #{release_path}/production.ini http_port=#{port}" 
     end 
    end 

end 

Но это не работает без установки, набрав «sudo python setup.py install». Если я пишу код для этого, он может работать, но я не хочу этого делать из-за разрешений.

Есть ли у кого-нибудь предложения?

ответ

5

Хорошо, лучше, чтобы настроить virtualenv, включите его, а затем установить приложение в этом virtualenv и запустить его оттуда :-)

Кроме того, существуют варианты использования Setuptools/Distutils к установить в вашу локальную папку пользователя, используя --user аргумент easy_install, как указано здесь: http://docs.python.org/install/index.html

а если серьезно, используйте virtualenv :-)

+0

Спасибо! Я не знал этого варианта. Я считаю использование virtualenv. (Я знал об этом, но я не хочу его использовать.) Я должен переписать сценарий развертывания. –

4

либо установить приложение в virtualenv или использовать python setup.py develop какой Виль l связать ваш проект с python-средой (virtualenv или system в зависимости от того, что вы написали python). Обычно это предпочтительнее python setup.py install, потому что он держит ваш источник в управляемом месте и не требует, чтобы вы беспокоились о файлах манифеста, чтобы убедиться, что ваши статические ресурсы находятся в установленном комплекте.