新聞中心
作為一款高性能的Python并發(fā)編程庫,gevent一直備受開發(fā)者青睞。尤其在Web開發(fā)領(lǐng)域,它可以幫助我們輕松實現(xiàn)高并發(fā)和I/O密集型任務(wù)。但是,在Linux環(huán)境下編譯gevent并不是一件容易的事情。本文將為大家提供一份詳細(xì)的編譯指南,幫助大家輕松掌握gevent在Linux環(huán)境下的安裝和使用。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比燈塔網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式燈塔網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋燈塔地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
一、安裝依賴項
在編譯gevent之前,我們需要先安裝一些依賴庫。以下是一個典型的安裝命令:
“`
sudo apt-get install build-essential python-dev libevent-dev python-setuptools
“`
這里我們安裝了build-essential,它包含了一些必要的C/C++編譯器和庫文件。同時,我們還安裝了python-dev,它提供了Python的開發(fā)環(huán)境;另外,我們還安裝了libevent-dev,它是gevent運行的基礎(chǔ)庫;我們還安裝了python-setuptools,它是Python的包分發(fā)工具。
二、下載和解壓源代碼
在安裝好依賴項之后,我們需要下載和解壓gevent的源代碼。以下是幾個可以使用的下載鏈接:
“`
https://pypi.python.org/packages/source/g/gevent/gevent-1.1.2.tar.gz
https://github.com/gevent/gevent/archive/v1.1.2.tar.gz
“`
你可以選擇其中任意一個鏈接進(jìn)行下載,然后解壓到一個指定目錄中,例如:
“`
tar -zxvf gevent-1.1.2.tar.gz -C ~/Downloads/
“`
三、進(jìn)入解壓后的目錄并編譯
進(jìn)入解壓后的目錄,并執(zhí)行以下命令:
“`
cd ~/Downloads/gevent-1.1.2/
python setup.py build
“`
這個過程可能會需要一些時間,因為它需要編譯C代碼并生成一些Python模塊。如果一切順利的話,你應(yīng)該可以看到下面的輸出信息:
“`
running build
running build_py
running build_ext
“`
如果你看到了任何錯誤信息,請注意查看你的系統(tǒng)日志和安裝目錄中的log文件,以獲得更多的信息。
四、使用pip進(jìn)行本地安裝
一旦編譯好了gevent,我們就可以使用pip進(jìn)行本地安裝了:
“`
sudo pip install .
“`
請注意,這里的點號表示當(dāng)前目錄,因此pip會自動將編譯好的gevent安裝到系統(tǒng)中。
五、測試gevent的運行效果
我們需要測試剛剛安裝的gevent是否可以正常運行。以下是一個簡單的測試代碼:
“`python
import gevent
from gevent import monkey
monkey.patch_all()
def func(i):
print(“start %d” % i)
gevent.sleep(1)
print(“end %d” % i)
gevent.joinall([gevent.spawn(func, i) for i in range(3)])
“`
這段代碼將在3個綠色線程中運行,并輸出每個線程的開始和結(jié)束時間。你可以嘗試運行這個代碼并查看輸出信息,以確保gevent正常工作。
:通過以上步驟,你現(xiàn)在應(yīng)該已經(jīng)掌握了在Linux環(huán)境下安裝和編譯gevent的方法。gevent作為一個高性能的Python并發(fā)編程庫,可以幫助我們輕松地實現(xiàn)高并發(fā)和I/O密集型任務(wù),因此在任何需要使用Python進(jìn)行并發(fā)編程的應(yīng)用場景中,都應(yīng)該考慮使用gevent。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!
如何看待 slack 這個前端框架
為什么要做 slack-alert 呢? 成因其實是我一直想做的AST相關(guān)的一個項目. 正好是一個機會. 其次也是業(yè)務(wù)需要:
工程師都比較懶, 在每天的各種問題郵件幾百幾千封的時候會經(jīng)常遺漏重要的郵件. 會經(jīng)常被用戶以及公司其他同事發(fā)現(xiàn)問題時@到時候才發(fā)現(xiàn). 現(xiàn)在大家也接受了slack這個工具. 那么我就在想何不把更重要的消息發(fā)送到slack里呢.
原來也做過, 就是寫一些腳本, 會把運行的結(jié)果通過 slacker 里面封裝的 postMessage 發(fā)消息進(jìn)來. 先說一下為什么我不用 Incoming-webhooks . 最主要的, 因為通常slack都是用的免費版, 我擔(dān)心對webhooks會有限制或者未來會有限制.
但是為什么做這個 微框架 呢? 一則這樣的腳本和任務(wù)會越來越多, 腳本需要設(shè)置的定時任務(wù)的間隔也會各不相同. 用系統(tǒng)自帶的crontab, 每次新增修改刪除都要去做調(diào)整. 代碼還需要做抽象; 用celery, rq這些其實一是很浪費, 二也不畝滑怎么應(yīng)景. 所以我寫了這個工具.
優(yōu)點和特點 只支持python3 支持多種調(diào)度模式: AsyncIOSchedulerBackgroundScheduler, GeventScheduler, TornadoScheduler. 默認(rèn)是AsyncIO 使用 AST , 而沒有直接import代碼. 代碼和項目無關(guān), 沒有register. 只需要按格式編寫plugin腳本即可, 要被執(zhí)行的任務(wù)加一個裝飾器(只需要他是一個裝飾器, 不需要存在). 指定運行的間隔就好 附帶常用的配置 安裝
pip install slack-alert
slack-alert有個默認(rèn)的配置 slack_alert.conf . 使用 OS X 或者 linux 可以拷貝到 ~/.config/slack_alert.conf
編寫插件
PS: 插件目錄默認(rèn)是當(dāng)前目錄的 plugins 子目錄下.
tree plugins plugins ├—— examples.py 0 directories, 1 files
# coding=utf-8 import os @deco(seconds=2) # 這個一個正確格式的任務(wù), 因為裝飾器里面包含`hours|seconds|minutes|days`這樣的鍵. def a(): print(1) # 插件也需要python3的語法 print(os) # 可以使用外部的變量成都軟件外包公司
1 # 這個返回值最后會被發(fā)送到slack的channel里面 def b(): # 這個函數(shù)因為沒有對應(yīng)的格式的裝飾器 他不會被當(dāng)做一個任務(wù) print(3) return 2 @deco2(xx=1) @deco(minutes=2, seconds=30) def c(): # 這個函數(shù)也不是一個正確格式的裝飾器. 我需要把`deco`放在最外面 print(4) return 3
PS: 大家不要迷惑為什么 deco 這個函數(shù)沒有介紹. 因為我只需要這個代碼文本. 我其實迅早臘不直接運行這個腳本. 所以不需要裝飾器存在.
使用
slack-alert
這樣就啟動了.
a 這個函數(shù)就會每隔2秒運行一次, 運行三次后, 停頓60分鐘… 這樣循環(huán)(高級用法看下面的參數(shù)). 并且把結(jié)果發(fā)送到slack里面
原理 啟動 slack-alert 我首先加載配置. 我會根據(jù)配置 –path 去找我應(yīng)該睜漏去哪個文件目錄下(默認(rèn)是當(dāng)前目錄)的 plugins 子目錄下去找符合的任務(wù)程序. 加載符合的目錄下的每個python文件. 生成一個AST(抽象語法樹). 遍歷這棵樹. 找到符合我需要的語法的函數(shù). 去掉這個實際不存在的裝飾器. 編譯源碼并且執(zhí)行. 生成一個命名空間 獲取這個命名空間的參數(shù), 通過 apscheduler . 添加一個任務(wù) 添加全部任務(wù). 再添加一個監(jiān)控這些任務(wù)的任務(wù)(主要是用來在某些時機停掉/啟動其他某些任務(wù)) 啟動任務(wù)調(diào)度. 直到 Ctrl+C 高級選項
linux下gevent編譯的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux下gevent編譯,輕松學(xué)習(xí):Linux環(huán)境下gevent編譯指南,如何看待 slack 這個前端框架的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡稱香港主機/香港空間。香港虛擬主機特點是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機精選cn2+bgp線路訪問快、穩(wěn)定!
當(dāng)前題目:輕松學(xué)習(xí):Linux環(huán)境下gevent編譯指南(linux下gevent編譯)
網(wǎng)站地址:http://m.fisionsoft.com.cn/article/dhoghdg.html


咨詢
建站咨詢
