cherrypy安裝使用,配置python環境變數

來源:互聯網
上載者:User

 

cherrypy安裝使用,配置python環境變數2011-01-16 22:03

cherrypy安裝使用,配置python環境變數
CherryPy是一種基於Python的Web應用程式開發架構,一個相當不錯的HTTP Framework,它極大地簡化了使用Python 的web開發人員的工作。
1.安裝cherrypy:
從http://www.cherrypy.org/下載最新的cherrypy包
解壓縮後到目錄下運行安裝目錄(註:必須先安裝python並把python目錄加到環境變數中)
C:\Documents and Settings\zheng>G:
G:\>cd sns/CherryPy-3.1.2
G:\sns\CherryPy-3.1.2>python setup.py build
G:\sns\CherryPy-3.1.2>python setup.py install
安裝完畢就可以用了。

2.在G:\sns\CherryPy-3.1.2目錄下建立一個hello.py的檔案,輸入下面簡單的幾行代碼可以實現一個“Hello, World!”Application

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

3.回到命令列輸入下面命令啟動
G:\sns\CherryPy-3.1.2>python hello.py
[16/Jan/2011:21:35:07] ENGINE Listening for SIGTERM.
[16/Jan/2011:21:35:07] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at '' has an empty config.

[16/Jan/2011:21:35:07] ENGINE Started monitor thread 'Autoreloader'.
[16/Jan/2011:21:35:07] ENGINE Started monitor thread '_TimeoutMonitor'.
[16/Jan/2011:21:35:08] ENGINE Serving on 127.0.0.1:8080
[16/Jan/2011:21:35:08] ENGINE Bus STARTED

4.在瀏覽器輸入http://localhost:8080/ 訪問可以看到下面內容:
Hello World!
輸入http://localhost:8080/index也訪問到一樣的內容

5.把上面內容改為
import cherrypy

class HelloWorld(object):
    def hello(self):
        return "hello"
    def index(self):
        return "Hello World!"
    hello.exposed = True
    index.exposed = True

cherrypy.quickstart(HelloWorld())
在瀏覽器中輸入
http://localhost:8080/hello
可以看到輸出為hello

======================================

配置python環境變數
G:\sns\CherryPy-3.1.2>python
'python' 不是內部或外部命令,也不是可啟動並執行程式
或批次檔。

預設情況下,在windows下安裝python之後,系統並不會自動添加相應的環境變數。此時不能在命令列直接使用python命令。
1.首先需要在系統中註冊python環境變數:假設python的安裝路徑為c:\python2.5,則修改我的電腦->屬性->進階->環境變數->系統變數中的PATH為:

PATH=PATH;c:\python25

上述環境變數設定成功之後,就可以在命令列直接使用python命令。或執行"python *.py"運行python指令碼了。

2.此時,還是只能通過"python *.py"運行python指令碼,若希望直接運行*.py,只需再修改另一個環境變數PATHEXT:

PATHEXT=PATHEXT;.PY;.PYM

3.另外,在使用python的過程中,可能需要經常查看某個命令的協助文檔,如使用help('print')查看print命令的使用說明。預設安裝的python無法查看協助文檔,尚需進行簡單的配置:

在python安裝目錄下,找到python25.chm,使用hh -decompile .python25.chm將其反編譯出來,然後將其所在的目錄加入到上面提到的PATH環境變數中即可。

================================================

使用PyWin32將CherryPy應用安裝為服務

# coding=cp936
import cherrypy
import win32serviceutil
import win32service
import win32event
class HelloWorld:
""" 請求控制代碼例子 """
# 暴露對象
@cherrypy.expose
def index(self):
# 只做測試用,所以只返回簡單內容
return "Hello world!"
class MyService(win32serviceutil.ServiceFramework):
"""NT 服務"""
# 服務名
_svc_name_ = "CherryPyService"
# 服務顯示名稱
_svc_display_name_ = "CherryPy Service"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
# 建立一個事件
self.stop_event = win32event.CreateEvent(None, 0, 0, None)
def SvcDoRun(self):
cherrypy.root = HelloWorld()
# 更新配置,當使用設定檔時,必須為一個絕對路徑
cherrypy.config.update({
  
'global':{
'server.socketPort' : 81,
'server.environment': 'production',
'server.logToScreen': False,
'server.log_file': 'e:editlog.txt',
'server.log_access_file': 'e:editlog.txt',
'autoreload.on' : False,
'server.logTracebacks' : True
}
  
})
# 設定 initOnly=True
cherrypy.server.start(initOnly=True)
win32event.WaitForSingleObject(self.stop_event,
  
  
win32event.INFINITE)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
cherrypy.server.stop()
win32event.SetEvent(self.stop_event)
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(MyService)

  P.S.假設檔案名稱為mysrv.py 則

  x:>mysrv.py --顯示所有可用命令選項

  mysrv.py install--安裝服務

  mysrv.py start --啟動服務

  mysrv.py stop --停止服務

  mysrv.py restart --就是restart,重啟,更新代碼用

  mysrv.py remove --刪除服務

  再P.S.測試時候一定要注意防火牆,服務是自動攔截的(pythonservice.exe).偶就在這裡出問題了~嘻嘻

  用到的路徑必須全為絕對路徑,靜態目錄也是

  安裝好服務後,也可以使用net start/stop CherryPyService 來管理

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.