2012-02-28 48 views
3

我是金字塔的初學者。如何在沒有安裝的情況下使用pserve部署金字塔應用程序?

我想將金字塔部署到我的生產服務器。 我有一個使用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。 (我已經知道這個,但我不想使用它。) 我應該重寫部署腳本。 – 2012-02-29 00:51:57

4

無論是應用程序安裝到一個virtualenv中或使用python setup.py develop這WIL l將您的項目鏈接到python環境(virtualenv或系統,具體取決於您所調用的python)。這通常優於python setup.py install,因爲它將源代碼保存在可管理的位置,並且不需要擔心清單文件以確保您的靜態資源位於已安裝的捆綁包中。

相關問題