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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

漲知識!iPad還可以運行Python代碼

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

其實,不只是iPad手機也可以。

痛點

我組織過幾次線下編程工作坊,帶著同學們用Python處理數據科學問題。

其中最讓人頭疼的,就是運行環境的安裝。

實事求是地講,參加工作坊之前,我已經做了認真準備。

例如集成環境,選用了對用戶很友好的Anaconda。

代碼在我的Macbook電腦上跑,沒有問題。還拿到學生的Windows 7上跑,也沒有問題。這才上傳到了Github。

在發布的教程文章里,我也已經把安裝軟件包的說明寫得非常詳細。

漲知識!iPad還可以運行Python代碼

還針對 Anaconda 這一 Python 運行環境的安裝和運行,專門錄制了視頻

漲知識!iPad還可以運行Python代碼

但是,工作坊現場遇見的問題,依然五花八門。

有的是操作系統。例如你可能用Windows 10。實話實說,我確實沒用過。拿著Surface端詳,連安裝后的Anaconda文件夾都找不到在哪兒。

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

有的是套件路徑。來參加工作坊前,你可能看過我一些教程,并安裝了 Python 2.7 版本 Anaconda。來到現場,一看需要 Python 3.6 版本,你就又安裝了一份新的。結果執行起來,你根本分不清運行的 Python, pip 命令來自哪一個套件,更搞不清楚軟件包究竟安裝到哪里去了。再加上虛擬環境配置,你就要抓狂了。

還有的,甚至是網絡擁塞問題。因為有時需要現場安裝調用體積龐大的軟件包,幾十臺電腦“預備——齊”一起爭搶有限的Wifi帶寬,后果可想而知。

痛定思痛,我決定改變一下現狀。

目前的教程只提供基礎源代碼。對于許多新手同學來說,是不夠的。

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

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

但是正如我在《MOOC教學,什么最重要?》一文中說過的,學習過程里,反饋最重要。

你需要能運行代碼,并且第一時間獲得結果反饋。

在此基礎上,你還得能修改代碼,對比前后執行結果的差別。

我得給你提供一個直接可以運行的環境。

零安裝,自然也就沒了上述煩惱。

這個事兒可能嗎?

我研究了一下,沒問題。

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

IE 8.0?

那個不行,趕緊升級吧!

讀到這里,你應該想明白了。因為只挑瀏覽器,不挑操作系統,所以別說你用Windows 10,你就是用iPad,都能運行代碼。

嘗試

請你打開瀏覽器,輸入這個鏈接(http://t.cn/R35fElv)。

看看會發生什么?

我這里用iPad給你演示。

一開始會有個啟動界面出來。請你稍等10幾秒鐘。

漲知識!iPad還可以運行Python代碼

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

漲知識!iPad還可以運行Python代碼

這個界面來自 Jupyter Lab。

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

代碼單元直接鼠標拖動;

一個瀏覽器標簽,可打開多個Notebook,而且分別使用不同的Kernel;

提供實時渲染的Markdown編輯器;

完整的文件瀏覽器;

CSV數據文件快速瀏覽

……

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

右側打開的,是咱們要使用的ipynb文件。

為了證明這不是逗你玩兒,請你點擊右側代碼上方工具欄的運行按鈕。

點擊一下,就會運行出當前所在代碼單元的結果。

不斷點擊下來,你可以看見,結果都被正常渲染。

漲知識!iPad還可以運行Python代碼

連圖像也能正常顯示。

漲知識!iPad還可以運行Python代碼

甚至連下面這種需要一定運算量的可視化結果,都沒問題。

漲知識!iPad還可以運行Python代碼

為了證明這不是變魔術,你可以在新的單元格,寫一行輸出語句。

就讓Python輸出你的名字吧。

假如你叫 Chuck,就這樣寫:

print(“Hello, Chuck!”)

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

漲知識!iPad還可以運行Python代碼

其實,又何止是iPad而已?

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

就像這樣。

漲知識!iPad還可以運行Python代碼

流程

下面我給你講講,這種效果是怎么做出來的。

我們需要用到一款工具,叫做 mybinder 。它可以幫助我們,把 github 上的某個代碼倉庫(repo),快速轉換成為一個可運行的環境。

注意 mybinder 為我們提供了云設施,也就是計算資源和存儲資源。因此即便許許多多的用戶同時在線使用同一份代碼轉換出來的環境,也不會互相沖突。

我們先來看看,怎么準備一個可供 mybinder 順利轉換的代碼倉庫。

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

漲知識!iPad還可以運行Python代碼

順便說一句,這個樣例來自于我的數據科學系列教程之《如何用Python處理自然語言?(Spacy與Word Embedding)》。感興趣的同學可以點擊鏈接,查看原文。

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

demo.ipynb

environment.yml

postBuild

其中demo.ipynb就是你在上一節看到的包含源代碼的Jupyter Notebook文件。你需要首先在本地安裝相關軟件包,并且運行測試通過。

如果在你本地運行都有錯誤,放到云上去,想必也難以正常運行。

environment.yml文件非常重要,它來告訴 mybinder ,需要如何為你的代碼運行準備環境。

我們打開看看該文件的內容:

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

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

然后這個文件說明需要使用 pip 工具安裝哪些軟件包。我們需要把所有依賴的安裝包都羅列出來。

這就是之前,我總在教程里給你說明的那些準備步驟。

但是這還沒有完,因為 mybinder 只是為你安裝好了一些軟件依賴。

這里還有兩個步驟需要處理:

為了分析語義,我們需要調用預訓練的Word2vec模型,這需要 mybinder 為我們提前下載好。

Jupyter Notebook 打開后,應當使用的 kernel 名稱為 wangshuyi ,這個 kernel 目前還沒有在 Jupyter 里面注冊。我們需要 mybinder 代勞。

為了完成上述兩個步驟,你就需要準備最后一個postBuild文件。

它的內容如下:

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

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

至此,你的準備工作就算結束了。

魔法表演正式開始。

請打開 mybinder 的網址(https://mybinder.org/)。

漲知識!iPad還可以運行Python代碼

在 “GitHub repo or URL” 一欄,填寫我們的 github 代碼倉庫鏈接,即:

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

我們希望一進入界面,就自動打開 demo.ipynb ,因此需要在“Path to a notebook file (optional)”一欄填寫demo.ipynb 。

這時,你會發現“Copy the URL below and share your Binder with others:”一欄中,出現了你的代碼運行環境網址。

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

點擊右側的“復制”按鈕保存到你的記事本里面。將來找到你轉換好的運行環境,就全靠它了。

妥善保存地址后,點擊“Launch”按鈕。

漲知識!iPad還可以運行Python代碼

根據你的依賴安裝包數量等因素,你需要等待的時間長短不一。但是只有第一次構建的時候,需要花一些時間。

以后每一次調用執行,就都會非常快了。

構建完畢后, mybinder 會自動為我們開啟對應的運行環境。

漲知識!iPad還可以運行Python代碼

很有成就感吧!

測試一下,能夠正常運行代碼,就證明我們成功了。

但是你會發現,不對啊!

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

我也想要高級版!

別著急。

看看你目前的鏈接地址:

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

你只需要做個小小的調整,將其中的:

?filepath=

替換為:

?urlpath=lab/tree/

替換后的鏈接為:

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

把它輸入到瀏覽器,看看出來的結果:

漲知識!iPad還可以運行Python代碼

這下沒問題了吧?

原理

你是不是覺得,mybinder 很黑科技

其實,也不算。

它只是把已有的幾項技術,鏈接了起來。

這大概也算是“積木式創新”的一個實例吧。

我們看看 mybinder 的說明:

漲知識!iPad還可以運行Python代碼

可以看到,其中最為關鍵的技術,是用了 docker 。

Docker 是個什么東西呢?

簡單來說,Docker 就是為了不同平臺上,都能夠順利執行同一份代碼的保障工具。

你有些猶疑,這說的不是 Java 嗎?

沒錯,Java 的宣傳口號,就是一次編碼,各處運行。

它利用虛擬機,來保障這種能力。

漲知識!iPad還可以運行Python代碼

但是,如果你經常使用 Java 開發出來的工具,就應該了解痛點有哪些了。

至少,你應該對 Java 程序的運行速度,有一些體會。

漲知識!iPad還可以運行Python代碼

上圖中,左側是虛擬機,右側是Docker。

Docker 不但效率上要強過 Java 虛擬機,而且它支持的編程語言也不僅僅是一種。

至于其他好處,咱們就不展開了。否則聽起來像廣告。

其實,把 github 代碼倉庫轉換為 docker 鏡像(image)的工作,也不是 mybinder 自己來做的。

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

漲知識!iPad還可以運行Python代碼

而你的瀏覽器能夠執行 Python 代碼,是因為 Jupyter Notebook (或者Lab)本來就是建立在“瀏覽器/服務器”(Browser / Server, B/S)結構上。

如果你已經在本地計算機安裝過 Anaconda ,那不妨看看本地執行這個語句:

jupyter lab

會出現什么?

漲知識!iPad還可以運行Python代碼

對,它開啟了一個服務器,然后打開你的瀏覽器,跟這個服務器通訊。

Jupyter 的這種設計,本身就讓它的擴展極為方便。

無論 Jupyter 服務器是運行在你的本地筆記本上,還是擺在另一個大洲的機房,對你執行 Python 代碼來說,都是沒有本質區別的。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • iPad
    +關注

    關注

    1

    文章

    1378

    瀏覽量

    82130
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85782
收藏 人收藏

    評論

    相關推薦

    Python 代碼加速運行的的小技巧

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

    使Python代碼在BeagleBoard上運行

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

    優化Python代碼有哪些工具

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

    python怎樣運行代碼

    討論Python代碼運行方式,包括解釋器、交互式環境和命令行。 Python代碼可以通過兩種主
    的頭像 發表于 11-22 10:31 ?1893次閱讀

    python如何換行而不運行代碼

    的情況下可以使用換行字符來達到這個目的。 在Python中,換行字符一般是使用符號來表示。下面是一些常用的換行字符示例: 在字符串中使用換行字符: 在字符串中,可以使用換行字符來換行而不運行
    的頭像 發表于 11-22 10:52 ?2977次閱讀

    python寫完程序之后怎么運行

    Python是一門簡潔、易學的編程語言,被廣泛應用于數據分析、人工智能等領域。在學習Python編程的過程中,了解程序的運行機制是至關重要的。本文將詳盡解析Python程序的
    的頭像 發表于 11-22 11:10 ?1265次閱讀

    python如何查看運行過程

    Python是一門高級編程語言,可以用于開發各種類型的應用程序、網站和數據分析。當我們編寫并運行Python程序時,有時候需要了解程序執行的詳細過程,以便調試
    的頭像 發表于 11-22 11:13 ?2331次閱讀

    知識了!元器件包裝標簽中的“e”代碼,原來是這個含義……

    知識了!元器件包裝標簽中的“e”代碼,原來是這個含義……
    的頭像 發表于 12-06 15:43 ?1603次閱讀

    python運行一次自動再次運行

    使用循環語句是最簡單的一種實現自動運行功能的方法。在Python中,可以使用while循環或for循環來實現。下面是一個使用while循環實現自動運行的例子: while True
    的頭像 發表于 11-23 15:52 ?2222次閱讀

    python代碼寫完后點哪個運行

    當你完成了編寫Python代碼后,你可以選擇多種方式來運行它。下面是幾種常見的運行代碼的方式:
    的頭像 發表于 11-24 09:28 ?6711次閱讀

    如何運行Python程序

    運行Python程序非常簡單。Python是一種解釋型語言,這意味著可以直接通過解釋器來執行代碼。下面我將詳細介紹如何
    的頭像 發表于 11-24 09:31 ?1604次閱讀

    python如何換行而不運行代碼

    和可讀性。 在Python中,可以使用兩個主要的方法進行換行:使用反斜杠()和使用圓括號(())。 第一種方式是使用反斜杠()來表示換行。在Python中,反斜杠是一個轉義字符,它可以
    的頭像 發表于 11-24 09:50 ?3528次閱讀

    python運行程序出現紅色空白

    類型語言,它對代碼的語法非常嚴格。如果你的代碼存在語法錯誤,Python解釋器將無法正確解析代碼運行。常見的語法錯誤包括拼寫錯誤、缺少括號
    的頭像 發表于 11-28 15:30 ?2403次閱讀

    python軟件怎么運行代碼

    Python是一種高級編程語言,它被廣泛用于開發各種類型的應用程序,從簡單的腳本到復雜的網絡應用和機器學習模型。要運行Python代碼,您需要一個P
    的頭像 發表于 11-28 16:02 ?1213次閱讀

    python運行指定幾行

    Python是一種高級編程語言,可以用于開發各種類型的應用程序,包括網站、桌面應用程序、數據分析和人工智能等。在Python運行指定的幾行代碼
    的頭像 發表于 11-29 15:04 ?1142次閱讀
    主站蜘蛛池模板: 免费啪视频在线观看 | 免费观看黄视频网站 | 女人本色高清在线观看wwwwww国产 | 国产拍拍拍精品视频 | 鲁丝一区二区三区 | 午夜免费小视频 | 麻豆美女大尺度啪啪 | 欧美黄色大片免费 | 18欧美乱大交 | 四虎电影院 | 国产精品免费久久久久影院 | 人人射人人插 | xxx日本69| 免费在线色 | 性夜影院爽黄a爽免费视频 性瘾高h姚蕊全文免费阅读 | 国产毛片一区二区三区精品 | 日韩欧美一级 | 天堂va欧美ⅴa亚洲va一国产 | 国产精品久久久久久久9999 | 天天操天天草 | 久久久国产乱子伦精品 | 深夜在线观看大尺度 | 免费观看黄视频网站 | 欧美人与动欧交视频 | 日日噜噜夜夜狠狠va视频 | 免费国产一区 | 久久国内 | 天天操天天干天天 | 日本一区免费看 | 久久久免费精品视频 | 国产性夜夜性夜夜爽91 | 最近国语剧情视频在线观看 | 天天干天天色天天 | 看大片全色黄大色黄 | 黄色在线看网站 | 一本大道高清在线视频 视频 | 日韩毛片高清免费 | 久久精品视频免费播放 | 欧美福利片在线观看 | 亚洲宅男天堂a在线 | 国模私拍一区二区 |