在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

漲知識(shí)!iPad還可以運(yùn)行Python代碼

西西 ? 作者:工程師3 ? 2018-05-17 18:03 ? 次閱讀

其實(shí),不只是iPad,手機(jī)也可以。

痛點(diǎn)

我組織過(guò)幾次線下編程工作坊,帶著同學(xué)們用Python處理數(shù)據(jù)科學(xué)問(wèn)題。

其中最讓人頭疼的,就是運(yùn)行環(huán)境的安裝。

實(shí)事求是地講,參加工作坊之前,我已經(jīng)做了認(rèn)真準(zhǔn)備。

例如集成環(huán)境,選用了對(duì)用戶很友好的Anaconda。

代碼在我的Macbook電腦上跑,沒(méi)有問(wèn)題。還拿到學(xué)生的Windows 7上跑,也沒(méi)有問(wèn)題。這才上傳到了Github。

在發(fā)布的教程文章里,我也已經(jīng)把安裝軟件包的說(shuō)明寫(xiě)得非常詳細(xì)。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

還針對(duì) Anaconda 這一 Python 運(yùn)行環(huán)境的安裝和運(yùn)行,專門錄制了視頻

漲知識(shí)!iPad還可以運(yùn)行Python代碼

但是,工作坊現(xiàn)場(chǎng)遇見(jiàn)的問(wèn)題,依然五花八門。

有的是操作系統(tǒng)。例如你可能用Windows 10。實(shí)話實(shí)說(shuō),我確實(shí)沒(méi)用過(guò)。拿著Surface端詳,連安裝后的Anaconda文件夾都找不到在哪兒。

有的是編碼。不同操作系統(tǒng),有的默認(rèn)中文編碼是UTF-8,有的是GBK。同樣一段中文文本,我這里顯示一切正常,你那里就是亂碼。

有的是套件路徑。來(lái)參加工作坊前,你可能看過(guò)我一些教程,并安裝了 Python 2.7 版本 Anaconda。來(lái)到現(xiàn)場(chǎng),一看需要 Python 3.6 版本,你就又安裝了一份新的。結(jié)果執(zhí)行起來(lái),你根本分不清運(yùn)行的 Python, pip 命令來(lái)自哪一個(gè)套件,更搞不清楚軟件包究竟安裝到哪里去了。再加上虛擬環(huán)境配置,你就要抓狂了。

還有的,甚至是網(wǎng)絡(luò)擁塞問(wèn)題。因?yàn)橛袝r(shí)需要現(xiàn)場(chǎng)安裝調(diào)用體積龐大的軟件包,幾十臺(tái)電腦“預(yù)備——齊”一起爭(zhēng)搶有限的Wifi帶寬,后果可想而知。

痛定思痛,我決定改變一下現(xiàn)狀。

目前的教程只提供基礎(chǔ)源代碼。對(duì)于許多新手同學(xué)來(lái)說(shuō),是不夠的。

許多同學(xué),就倒在了安裝依賴軟件包的路上,繼而干脆放棄了。

變通的辦法有許多。例如干脆錄制代碼執(zhí)行視頻給你看。

但是正如我在《MOOC教學(xué),什么最重要?》一文中說(shuō)過(guò)的,學(xué)習(xí)過(guò)程里,反饋?zhàn)钪匾?/p>

你需要能運(yùn)行代碼,并且第一時(shí)間獲得結(jié)果反饋。

在此基礎(chǔ)上,你還得能修改代碼,對(duì)比前后執(zhí)行結(jié)果的差別。

我得給你提供一個(gè)直接可以運(yùn)行的環(huán)境。

零安裝,自然也就沒(méi)了上述煩惱。

這個(gè)事兒可能嗎?

我研究了一下,沒(méi)問(wèn)題。

只要你的設(shè)備上有個(gè)現(xiàn)代化瀏覽器(包括但不限于Google Chrome, Firefox, Safari和Microsoft Edge等)就行。

IE 8.0?

那個(gè)不行,趕緊升級(jí)吧!

讀到這里,你應(yīng)該想明白了。因?yàn)橹惶魹g覽器,不挑操作系統(tǒng),所以別說(shuō)你用Windows 10,你就是用iPad,都能運(yùn)行代碼。

嘗試

請(qǐng)你打開(kāi)瀏覽器,輸入這個(gè)鏈接(http://t.cn/R35fElv)。

看看會(huì)發(fā)生什么?

我這里用iPad給你演示。

一開(kāi)始會(huì)有個(gè)啟動(dòng)界面出來(lái)。請(qǐng)你稍等10幾秒鐘。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

然后,你就能看到熟悉的Python代碼運(yùn)行界面了。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

這個(gè)界面來(lái)自 Jupyter Lab。

你可以將它理解為 Jupyter Notebook 的增強(qiáng)版,它具備以下特征:

代碼單元直接鼠標(biāo)拖動(dòng);

一個(gè)瀏覽器標(biāo)簽,可打開(kāi)多個(gè)Notebook,而且分別使用不同的Kernel;

提供實(shí)時(shí)渲染的Markdown編輯器;

完整的文件瀏覽器;

CSV數(shù)據(jù)文件快速瀏覽

……

圖中左側(cè)分欄,是工作目錄下的全部文件。

右側(cè)打開(kāi)的,是咱們要使用的ipynb文件。

為了證明這不是逗你玩兒,請(qǐng)你點(diǎn)擊右側(cè)代碼上方工具欄的運(yùn)行按鈕。

點(diǎn)擊一下,就會(huì)運(yùn)行出當(dāng)前所在代碼單元的結(jié)果。

不斷點(diǎn)擊下來(lái),你可以看見(jiàn),結(jié)果都被正常渲染。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

連圖像也能正常顯示。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

甚至連下面這種需要一定運(yùn)算量的可視化結(jié)果,都沒(méi)問(wèn)題。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

為了證明這不是變魔術(shù),你可以在新的單元格,寫(xiě)一行輸出語(yǔ)句。

就讓Python輸出你的名字吧。

假如你叫 Chuck,就這樣寫(xiě):

print(“Hello, Chuck!”)

把它替換成你自己的姓名,看看輸出結(jié)果是否正確?

漲知識(shí)!iPad還可以運(yùn)行Python代碼

其實(shí),又何止是iPad而已?

你如果足夠勇(sang) 于(xin) 嘗(bing) 試(kuang),手機(jī)其實(shí)也是可以的。

就像這樣。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

流程

下面我給你講講,這種效果是怎么做出來(lái)的。

我們需要用到一款工具,叫做 mybinder 。它可以幫助我們,把 github 上的某個(gè)代碼倉(cāng)庫(kù)(repo),快速轉(zhuǎn)換成為一個(gè)可運(yùn)行的環(huán)境。

注意 mybinder 為我們提供了云設(shè)施,也就是計(jì)算資源和存儲(chǔ)資源。因此即便許許多多的用戶同時(shí)在線使用同一份代碼轉(zhuǎn)換出來(lái)的環(huán)境,也不會(huì)互相沖突。

我們先來(lái)看看,怎么準(zhǔn)備一個(gè)可供 mybinder 順利轉(zhuǎn)換的代碼倉(cāng)庫(kù)。

我為你提供的樣例在這里(http://t.cn/R35MEqk):

漲知識(shí)!iPad還可以運(yùn)行Python代碼

順便說(shuō)一句,這個(gè)樣例來(lái)自于我的數(shù)據(jù)科學(xué)系列教程之《如何用Python處理自然語(yǔ)言?(Spacy與Word Embedding)》。感興趣的同學(xué)可以點(diǎn)擊鏈接,查看原文。

在該 GitHub 頁(yè)面展示的文件列表中,你需要注意以下3個(gè)文件:

demo.ipynb

environment.yml

postBuild

其中demo.ipynb就是你在上一節(jié)看到的包含源代碼的Jupyter Notebook文件。你需要首先在本地安裝相關(guān)軟件包,并且運(yùn)行測(cè)試通過(guò)。

如果在你本地運(yùn)行都有錯(cuò)誤,放到云上去,想必也難以正常運(yùn)行。

environment.yml文件非常重要,它來(lái)告訴 mybinder ,需要如何為你的代碼運(yùn)行準(zhǔn)備環(huán)境。

我們打開(kāi)看看該文件的內(nèi)容:

dependencies: - python=3 - pip: - spacy - ipykernel - scipy - numpy - scikit-learn - matplotlib - pandas - thinc

這個(gè)文件首先告訴 mybinder ,你的 Python 版本。我們采用的是 3.6 版。所以只需要指定 python=3 即可。mybinder 會(huì)自動(dòng)為你下載安裝最新的。

然后這個(gè)文件說(shuō)明需要使用 pip 工具安裝哪些軟件包。我們需要把所有依賴的安裝包都羅列出來(lái)。

這就是之前,我總在教程里給你說(shuō)明的那些準(zhǔn)備步驟。

但是這還沒(méi)有完,因?yàn)?mybinder 只是為你安裝好了一些軟件依賴。

這里還有兩個(gè)步驟需要處理:

為了分析語(yǔ)義,我們需要調(diào)用預(yù)訓(xùn)練的Word2vec模型,這需要 mybinder 為我們提前下載好。

Jupyter Notebook 打開(kāi)后,應(yīng)當(dāng)使用的 kernel 名稱為 wangshuyi ,這個(gè) kernel 目前還沒(méi)有在 Jupyter 里面注冊(cè)。我們需要 mybinder 代勞。

為了完成上述兩個(gè)步驟,你就需要準(zhǔn)備最后一個(gè)postBuild文件。

它的內(nèi)容如下:

python -m spacy download en python -m spacy download en_core_web_lg python -m ipykernel install --user --name=wangshuyi

跟它的名字一樣。它是在 mybinder 依據(jù) environment.yml 安裝了依賴組建后,依次執(zhí)行的命令。如果你的代碼需要其他的命令提供環(huán)境支持,也可以放在這里。

至此,你的準(zhǔn)備工作就算結(jié)束了。

魔法表演正式開(kāi)始。

請(qǐng)打開(kāi) mybinder 的網(wǎng)址(https://mybinder.org/)。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

在 “GitHub repo or URL” 一欄,填寫(xiě)我們的 github 代碼倉(cāng)庫(kù)鏈接,即:

https://github.com/wshuyi/demo-spacy-text-processing

我們希望一進(jìn)入界面,就自動(dòng)打開(kāi) demo.ipynb ,因此需要在“Path to a notebook file (optional)”一欄填寫(xiě)demo.ipynb 。

這時(shí),你會(huì)發(fā)現(xiàn)“Copy the URL below and share your Binder with others:”一欄中,出現(xiàn)了你的代碼運(yùn)行環(huán)境網(wǎng)址。

https://mybinder.org/v2/gh/wshuyi/demo-spacy-text-processing/master?filepath=demo.ipynb

點(diǎn)擊右側(cè)的“復(fù)制”按鈕保存到你的記事本里面。將來(lái)找到你轉(zhuǎn)換好的運(yùn)行環(huán)境,就全靠它了。

妥善保存地址后,點(diǎn)擊“Launch”按鈕。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

根據(jù)你的依賴安裝包數(shù)量等因素,你需要等待的時(shí)間長(zhǎng)短不一。但是只有第一次構(gòu)建的時(shí)候,需要花一些時(shí)間。

以后每一次調(diào)用執(zhí)行,就都會(huì)非??炝?。

構(gòu)建完畢后, mybinder 會(huì)自動(dòng)為我們開(kāi)啟對(duì)應(yīng)的運(yùn)行環(huán)境。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

很有成就感吧!

測(cè)試一下,能夠正常運(yùn)行代碼,就證明我們成功了。

但是你會(huì)發(fā)現(xiàn),不對(duì)??!

老師你剛才用 iPad 展示的,不是高級(jí)版的 Jupyter Lab 嗎?怎么又變成了 Jupyter Notebook 了?

我也想要高級(jí)版!

別著急。

看看你目前的鏈接地址:

https://mybinder.org/v2/gh/wshuyi/demo-spacy-text-processing/master?filepath=demo.ipynb

你只需要做個(gè)小小的調(diào)整,將其中的:

?filepath=

替換為:

?urlpath=lab/tree/

替換后的鏈接為:

https://mybinder.org/v2/gh/wshuyi/demo-spacy-text-processing/master?urlpath=lab/tree/demo.ipynb

把它輸入到瀏覽器,看看出來(lái)的結(jié)果:

漲知識(shí)!iPad還可以運(yùn)行Python代碼

這下沒(méi)問(wèn)題了吧?

原理

你是不是覺(jué)得,mybinder 很黑科技

其實(shí),也不算。

它只是把已有的幾項(xiàng)技術(shù),鏈接了起來(lái)。

這大概也算是“積木式創(chuàng)新”的一個(gè)實(shí)例吧。

我們看看 mybinder 的說(shuō)明:

漲知識(shí)!iPad還可以運(yùn)行Python代碼

可以看到,其中最為關(guān)鍵的技術(shù),是用了 docker 。

Docker 是個(gè)什么東西呢?

簡(jiǎn)單來(lái)說(shuō),Docker 就是為了不同平臺(tái)上,都能夠順利執(zhí)行同一份代碼的保障工具。

你有些猶疑,這說(shuō)的不是 Java 嗎?

沒(méi)錯(cuò),Java 的宣傳口號(hào),就是一次編碼,各處運(yùn)行。

它利用虛擬機(jī),來(lái)保障這種能力。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

但是,如果你經(jīng)常使用 Java 開(kāi)發(fā)出來(lái)的工具,就應(yīng)該了解痛點(diǎn)有哪些了。

至少,你應(yīng)該對(duì) Java 程序的運(yùn)行速度,有一些體會(huì)。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

上圖中,左側(cè)是虛擬機(jī),右側(cè)是Docker。

Docker 不但效率上要強(qiáng)過(guò) Java 虛擬機(jī),而且它支持的編程語(yǔ)言也不僅僅是一種。

至于其他好處,咱們就不展開(kāi)了。否則聽(tīng)起來(lái)像廣告。

其實(shí),把 github 代碼倉(cāng)庫(kù)轉(zhuǎn)換為 docker 鏡像(image)的工作,也不是 mybinder 自己來(lái)做的。

它調(diào)用的,是另外的一個(gè)工具,叫做 repo2docker(https://github.com/jupyter/repo2docker) 。

漲知識(shí)!iPad還可以運(yùn)行Python代碼

而你的瀏覽器能夠執(zhí)行 Python 代碼,是因?yàn)?Jupyter Notebook (或者Lab)本來(lái)就是建立在“瀏覽器/服務(wù)器”(Browser / Server, B/S)結(jié)構(gòu)上。

如果你已經(jīng)在本地計(jì)算機(jī)安裝過(guò) Anaconda ,那不妨看看本地執(zhí)行這個(gè)語(yǔ)句:

jupyter lab

會(huì)出現(xiàn)什么?

漲知識(shí)!iPad還可以運(yùn)行Python代碼

對(duì),它開(kāi)啟了一個(gè)服務(wù)器,然后打開(kāi)你的瀏覽器,跟這個(gè)服務(wù)器通訊。

Jupyter 的這種設(shè)計(jì),本身就讓它的擴(kuò)展極為方便。

無(wú)論 Jupyter 服務(wù)器是運(yùn)行在你的本地筆記本上,還是擺在另一個(gè)大洲的機(jī)房,對(duì)你執(zhí)行 Python 代碼來(lái)說(shuō),都是沒(méi)有本質(zhì)區(qū)別的。

另外,如果你以為 mybinder 只能讓你在瀏覽器上跑 Python 代碼,那就太小瞧它了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • iPad
    +關(guān)注

    關(guān)注

    1

    文章

    1375

    瀏覽量

    81218
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84688
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python 代碼加速運(yùn)行的的小技巧

    Python 是一種腳本語(yǔ)言,相比 C/C++ 這樣的編譯語(yǔ)言,在效率和性能方面存在一些不足。但是,有很多時(shí)候,Python 的效率并沒(méi)有想象中的那么夸張。本文對(duì)一些 Python 代碼
    的頭像 發(fā)表于 09-01 11:28 ?1715次閱讀

    使Python代碼在BeagleBoard上運(yùn)行

    電子發(fā)燒友網(wǎng)站提供《使Python代碼在BeagleBoard上運(yùn)行.zip》資料免費(fèi)下載
    發(fā)表于 06-16 15:03 ?0次下載
    使<b class='flag-5'>Python</b><b class='flag-5'>代碼</b>在BeagleBoard上<b class='flag-5'>運(yùn)行</b>

    優(yōu)化Python代碼有哪些工具

    代碼。 1. Jupyter Notebook:這個(gè)交互式筆記本工具允許您在瀏覽器中編寫(xiě)和運(yùn)行Python代碼,并以文檔形式保存。Jupyter Notebook使得
    的頭像 發(fā)表于 07-24 09:28 ?1367次閱讀

    python怎樣運(yùn)行代碼

    討論Python代碼運(yùn)行方式,包括解釋器、交互式環(huán)境和命令行。 Python代碼可以通過(guò)兩種主
    的頭像 發(fā)表于 11-22 10:31 ?1306次閱讀

    python如何換行而不運(yùn)行代碼

    的情況下可以使用換行字符來(lái)達(dá)到這個(gè)目的。 在Python中,換行字符一般是使用符號(hào)來(lái)表示。下面是一些常用的換行字符示例: 在字符串中使用換行字符: 在字符串中,可以使用換行字符來(lái)?yè)Q行而不運(yùn)行
    的頭像 發(fā)表于 11-22 10:52 ?2613次閱讀

    python寫(xiě)完程序之后怎么運(yùn)行

    Python是一門簡(jiǎn)潔、易學(xué)的編程語(yǔ)言,被廣泛應(yīng)用于數(shù)據(jù)分析、人工智能等領(lǐng)域。在學(xué)習(xí)Python編程的過(guò)程中,了解程序的運(yùn)行機(jī)制是至關(guān)重要的。本文將詳盡解析Python程序的
    的頭像 發(fā)表于 11-22 11:10 ?1010次閱讀

    python如何查看運(yùn)行過(guò)程

    Python是一門高級(jí)編程語(yǔ)言,可以用于開(kāi)發(fā)各種類型的應(yīng)用程序、網(wǎng)站和數(shù)據(jù)分析。當(dāng)我們編寫(xiě)并運(yùn)行Python程序時(shí),有時(shí)候需要了解程序執(zhí)行的詳細(xì)過(guò)程,以便調(diào)試
    的頭像 發(fā)表于 11-22 11:13 ?2037次閱讀

    知識(shí)了!元器件包裝標(biāo)簽中的“e”代碼,原來(lái)是這個(gè)含義……

    知識(shí)了!元器件包裝標(biāo)簽中的“e”代碼,原來(lái)是這個(gè)含義……
    的頭像 發(fā)表于 12-06 15:43 ?1235次閱讀

    python運(yùn)行一次自動(dòng)再次運(yùn)行

    使用循環(huán)語(yǔ)句是最簡(jiǎn)單的一種實(shí)現(xiàn)自動(dòng)運(yùn)行功能的方法。在Python中,可以使用while循環(huán)或for循環(huán)來(lái)實(shí)現(xiàn)。下面是一個(gè)使用while循環(huán)實(shí)現(xiàn)自動(dòng)運(yùn)行的例子: while True
    的頭像 發(fā)表于 11-23 15:52 ?1990次閱讀

    python代碼寫(xiě)完后點(diǎn)哪個(gè)運(yùn)行

    當(dāng)你完成了編寫(xiě)Python代碼后,你可以選擇多種方式來(lái)運(yùn)行它。下面是幾種常見(jiàn)的運(yùn)行代碼的方式:
    的頭像 發(fā)表于 11-24 09:28 ?5547次閱讀

    如何運(yùn)行Python程序

    運(yùn)行Python程序非常簡(jiǎn)單。Python是一種解釋型語(yǔ)言,這意味著可以直接通過(guò)解釋器來(lái)執(zhí)行代碼。下面我將詳細(xì)介紹如何
    的頭像 發(fā)表于 11-24 09:31 ?1243次閱讀

    python如何換行而不運(yùn)行代碼

    和可讀性。 在Python中,可以使用兩個(gè)主要的方法進(jìn)行換行:使用反斜杠()和使用圓括號(hào)(())。 第一種方式是使用反斜杠()來(lái)表示換行。在Python中,反斜杠是一個(gè)轉(zhuǎn)義字符,它可以
    的頭像 發(fā)表于 11-24 09:50 ?3168次閱讀

    python運(yùn)行程序出現(xiàn)紅色空白

    類型語(yǔ)言,它對(duì)代碼的語(yǔ)法非常嚴(yán)格。如果你的代碼存在語(yǔ)法錯(cuò)誤,Python解釋器將無(wú)法正確解析代碼運(yùn)行。常見(jiàn)的語(yǔ)法錯(cuò)誤包括拼寫(xiě)錯(cuò)誤、缺少括號(hào)
    的頭像 發(fā)表于 11-28 15:30 ?2000次閱讀

    python軟件怎么運(yùn)行代碼

    Python是一種高級(jí)編程語(yǔ)言,它被廣泛用于開(kāi)發(fā)各種類型的應(yīng)用程序,從簡(jiǎn)單的腳本到復(fù)雜的網(wǎng)絡(luò)應(yīng)用和機(jī)器學(xué)習(xí)模型。要運(yùn)行Python代碼,您需要一個(gè)P
    的頭像 發(fā)表于 11-28 16:02 ?901次閱讀

    python運(yùn)行指定幾行

    Python是一種高級(jí)編程語(yǔ)言,可以用于開(kāi)發(fā)各種類型的應(yīng)用程序,包括網(wǎng)站、桌面應(yīng)用程序、數(shù)據(jù)分析和人工智能等。在Python運(yùn)行指定的幾行代碼
    的頭像 發(fā)表于 11-29 15:04 ?972次閱讀
    主站蜘蛛池模板: 久久夜色撩人精品国产| 国产真实乱偷人视频| 国产国产人免费人成成免视频| 天天干精品| 中国一级生活片| 天堂视频在线| 国产成人三级经典中文| 人人干干| 99热.com| 久久99精品久久久久久久野外| 色se01短视频永久免费| 老师叫我下面含着精子去上课| 日本黄色免费片| 午夜小视频免费观看| 亚洲网站免费观看| 欧美午夜电影| 天天插天天狠天天透| 日本口工全彩无遮拦漫画大| 欧美成人aaa大片| 人人艹在线视频| 中文字幕88页| 国产精品黄网站免费观看| www.天天干| 色综合一区二区三区| 午夜影视免费| 欧美色爱综合| 5252a我爱haose01亚洲| 三级欧美视频| 黄色毛片播放| 97人人做人人添人人爱| 特级毛片网站| 天天色天天草| 操白虎美女| 高清成人| 羞羞视频靠逼视频大全| 美女黄页黄频| 福利视频亚洲| 日本特级淫片免费| 久久老色鬼天天综合网观看| 婷婷激情综合五月天| 网站大全黄免费|