整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Python 開發者的 10 大編程開發環境(IDE),第一款是我的最愛

          于程序員來說,除了日常爭論世界上最好的語言是哪一門以外,哪款 IDE 是最好的也是爭議頗多,今天我們就來介紹 10 款最好的 Python 編程 IDE,總有一款適合你!

          經典推薦

          • 再見英文版,Python 速查表中文版來了
          • 年終推薦:李宏毅《機器學習》40講真香

          什么是 IDE?

          私信小編01即可獲取大量Python學習資源

          IDE 代表集成開發環境,它是一個 GUI(圖形用戶界面),程序員可以在其中編寫代碼并生成最終產品。IDE 基本上統一了軟件開發和測試所需的所有基本工具,這反過來又幫助程序員最大化輸出。一些 IDE 是通用的,也就是說它們可以支持多種語言,例如,Sublime Text、Atom、Visual Studio 等。同樣特定語言的 IDE 支持特定語言,它們還可以幫助我們了解語法錯誤等信息,比如:用于 Python 的 Pycharm、用于 Java 的 Jcreator、用于 Ruby/Rails 的 RubyMine 等等

          10 大 IDE

          一個完備的 IDE 應該包括以下內容:

          • 代碼編輯器:提供代碼編輯器來編寫和操作源代碼,代碼編輯器可以是獨立的應用程序,也可以集成到 IDE 中
          • 語法高亮:提供此功能以用不同的顏色和字體標記基本語言的語法
          • 自動補全代碼:旨在最大限度地減少時間消耗,自動完成功能代碼或建議程序員需要出現哪些變量、參數或代碼位
          • 調試器:調試器是測試和調試源代碼所需的工具
          • 編譯器:編譯器是將源代碼從一種語言翻譯成另一種語言的組件,編譯器通常執行預處理、詞法分析、代碼優化和代碼生成任務
          • 語言支持:IDE 可以是特定于語言的,也可以支持多種語言

          PyCharm

          PyCharm 由捷克公司 JetBrains 開發,是一個特定于 Python 的 IDE,是一個跨平臺的 IDE。因此,用戶可以根據自己的需要下載任何 Windows、Mac 或 Linux 版本來使用。可以說,PyCharm 被認為是 Python 最好的 IDE 之一,并且是使用最廣泛的

          除了常見功能外,PyCharm 還提供了其他功能,例如:

          • 專業的項目視圖允許在文件之間快速切換
          • 與 Django、Flask 和 web2py 一起快速進行 Web 開發
          • PyCharm 配備了 1000 多個插件,程序員也可以編寫自己的插件來擴展其功能
          • 它提供兩個版本供下載,免費的社區版和付費的專業版,一般情況下社區版的功能完全夠用

          Spyder 是 Pierre Raybaut 于 2009 年開發的開源、跨平臺 IDE。主要為數據分析師和科學家設計,被認為是一個用 Python 編寫的強大的科學開發 IDE

          其主要功能如下:

          • Spyder 與許多科學 Python 庫集成,即 SciPy、NumPy、Matplotlib、Pandas 等
          • Spyder 為編輯、分析和數據探索提供高級的支持
          • 它還允許靜態代碼分析,其中分析是在不實際執行代碼的情況下進行的
          • 該 IDE 的功能可以通過其插件系統和 API 進一步擴展

          PyDev 最初由 Alex Totic 于 2003 年創建,然后由 Fabio Zadrozny 擔任其主要項目負責人。它基本上是一個開源的第三方包,用作 Eclipse 的插件,使其能夠用于 Python 開發

          PyDev 具有許多特殊功能,例如:

          • 遠程調試器(可以調試未在 Eclipse 中啟動的文件)
          • 代碼折疊(有選擇地隱藏或顯示代碼段)
          • 支持 Python 2.x 和 3.x 語法

          Rodeo 是 Yhat 開發的開源 Python IDE,它專為機器學習和數據科學而構建

          其主要特色:

          • Rodeo 使得加載數據和比較數據非常方便
          • 允許進行數據實驗
          • 配有 Python 教程,指導用戶使用
          • 提供 Cheat sheets 供參考
          • 文件和包搜索非常方便

          Sublime Text

          Sublime-Text 是一個用 C++ 和 Python 開發的跨平臺 IDE。除了 Python 之外,它還提供對其他語言的支持。可以使用插件增強此 IDE 的功能

          它提供很多功能,例如:

          • 允許快速訪問文件、符號或行的“Goto Anything”功能
          • 它的命令面板為鍵盤調用提供了強大的匹配功能
          • 有基于 Python 的插件 API
          • 允許同時編輯多個文件
          • 可以使首選項進行項目定制

          這個 IDE 是由 Wingware 創建的,它是一個輕量級的 IDE,旨在允許快速編程,有三種變體,分別為:

          • Wing Pro – 專業人士的付費版本
          • Wing Personal – 學生和愛好者的免費版本
          • Wing 101 - 初學者的簡化免費版本

          Wing 提供的特色功能,例如:

          • 自動多進程和子進程調試
          • 遠程調試過程
          • 模塊瀏覽器
          • 重構
          • 自動完成也可用于非 Python 文件

          Eric Python

          Eric 是用 Python 編寫的,是免費軟件,它的源代碼是免費提供的,任何人都可以研究和重新創建

          它提供的一些高質量功能,例如:

          • 可格式化的窗口布局
          • 可格式化的語法高亮
          • 代碼折疊
          • 配備課堂瀏覽器
          • 對單元測試的內置支持
          • 對 Django 的內置支持

          Atom 是一個使用 Web 技術構建的開源免費 IDE,Atom 基于由 GitHub 構建的 Electron 框架,而后者又是用 CoffeeScript 和 Less 編寫的

          Atom 的具體特性包括:

          • 啟用對第三方包和主題的支持以格式化編輯器
          • 允許安裝和管理 Atom 的 APM 包
          • 提供對 Python 以外的多種語言的支持,如 C、C++、Java、HTML 等
          • 包含異常報告包

          Thonny 是為初學者開發的 IDE,它為程序員提供了逐步的幫助指南

          它具有許多功能,例如:

          • 提供單獨的窗口來執行函數調用
          • 行號可供用戶跟蹤每行
          • 提供用戶操作日志,以便日后為用戶提供幫助
          • 無需斷點的語句步進

          IDLE 完全是用 Python 編寫的,它是安裝好 Python 環境之后默認自帶的 IDE 工具。據推測,它的名字是為了紀念 Python 的創始成員之一埃里克·伊德爾(Eric Idle)。由于其簡單性,該 IDE 被認為非常適合教育行業

          IDLE 還提供了一些顯著的功能,例如:

          • 具有語法高亮顯示的 python shell 的可用性
          • 多窗口文本編輯器
          • 程序動畫或步進(指一次執行一行代碼)
          • 斷點可用于簡化調試
          • 調用堆棧清晰可見

          以上就是今天介紹的 10 大 Python 語言 IDE,哪一款是你 pick 的呢

          好了,今天分享就到這里,如果大家覺得滿意請務必點個 + 在看 支持下

          3年前在AWS re:Invent 大會上AWS 宣布推出 Cloud9, 用于在云端編寫、運行和調試代碼,它可以直接運行在瀏覽器中,也就是傳說中的 Web IDE。3年后的今天隨著國內云計算的發展, 各大云計算服務廠商都在部署自己的WEB IDE, 而且已經有非常成熟的落地方案, 對于這一塊的技術原理和實現, 也非常值得我們去學習和剖析.

          目前比較成熟的WEB IDE方案有CodeSandbox, Cloud Studio等, 接下來筆者將實現一個簡單的WEB IDE, 來帶大家了解其原理和實現過程.

          正文

          筆者接下來會介紹WEB IDE的實現原理和應用場景, 并介紹如何在H5-Dooring中使用它.

          1. web編輯器實現原理

          我們先來看看一個成熟WEB IDE的結構:

          抽象出來可以分為3個核心部分: 文件導航區 代碼編輯區 * 預覽容器

          如下圖所示:

          在把模塊抽象出來之后我們來思考具體的功能實現. 對于文件導航區我們可以很容易地使用react/vue的ui庫來實現, 對于文件保存, 目錄樹生成等我們可以使用nodejs + DB(如mysql,Redis)來實現. 代碼編輯區我們可以用第三方成熟的庫比如react-codemirror2 或者react-monaco-editor來做. 由于預覽容器我們不清楚預覽類型(如小程序, web頁面還是app), 所以這里我們暫時考慮web頁面容器, 也就是我們比較熟悉的iframe. 那么我們可以畫出如下技術實現圖:

          實際上WEB IED實現過程遠比上面的復雜, 我們這里只做簡單的抽象. 我們接下來梳理一下在線代碼編輯器的需求: 支持在線編寫前端代碼(html,javascript,css) 支持實時預覽 * 支持代碼在線下載

          1.1 技術選型

          在了解了以上實現方式之后, 我們開始來搭建環境并進行代碼開發. 以下列舉我們的技術選型: koa 基于nodejs的服務端框架 koa-static 基于koa的靜態資源中間件 koa-body 解析請求體的中間件 koa2-cors 處理跨域的中間件 koa-logger 處理請求日志的中間件 react 前端框架 react-codemirror2 代碼編輯器 antd 基于react的前端組件庫

          以下是筆者實現的效果圖:


          1.2 實現細節

          對于以上筆者列出的koa和react的技術方案不熟悉的大家可以先了解一下,筆者這里直接實現具體邏輯。

          我們先用umi來創建工程,然后在根目錄新建server.js文件。該文件主要用來處理nodejs相關邏輯,在稍后我會詳細介紹。

          界面的實現筆者不一一介紹了,前端模塊筆者來介紹一下如何配置代碼編輯器。react-codemirror2基本使用方式如下:

          import {UnControlled as CodeMirror} from 'react-codemirror2';
          require('codemirror/mode/xml/xml');
          require('codemirror/mode/javascript/javascript');
          
          export default function() {
            // ...
            return (
              <CodeMirror
                className={styles.codeWrap}
                value={html}
                options={{
                  mode: 'xml',
                  theme: 'material',
                  lineNumbers: true
                }}
                onChange={handleChange}
                cursor={cursor}
                onCursor={onCursorChange}
              />      
            );
          }
          

          通過以上方式我們就能生成一個基本的代碼編輯器,需要注意的是我們需要再單獨引入對應的主題樣式文件:

          @import '~codemirror/lib/codemirror.css';
          @import '~codemirror/theme/material.css';
          

          為了實現預覽功能,筆者之前想了兩種方案,一種是直接通過頁面組件的方式來實現預覽,但是缺點是只有dom和樣式更新能生效,如果編寫js代碼,由于react的內部機制是無法直接執行script的。

          另一種方案是iframe,這種方案可以很好地隔離react和預覽代碼,實現機制如下:

          也就是說我們在代碼編輯器里編輯完代碼之后統一通過請求的方式保存在node端,然后通過iframe請求nodejs渲染的靜態頁面來實現預覽功能。有點類似服務端渲染的感覺。

          那么如何保證實時預覽呢?這塊完全可以設計成用戶手動點擊預覽,也是筆者最初的設想,但是為了增強用戶體驗,筆者決定采用實時預覽, 也就是用戶代碼的變化可以實時反應在“預覽窗口”。方案就是在onChange中更新state來實現rerender,這一點用react hooks很好實現。但是實時更新對性能很不友好, 所以為了提高預覽性能和頁面體驗,筆者在這里使用防抖來控制請求頻次和時機。代碼如下:

          const handleChange = (editor, data, value) => {
            fetchPage(value)
          }
          
          const fetchPage = (v) => {
            if(timer) clearTimeout(timer);
            timer = setTimeout(() => {
              fetch('http://localhost:80/dooring/render', {method: 'POST', body: v}).then(res => {
                html = v
                setUpdate(prev => !prev)
              });
            }, 1000);
          }
          

          在開發中還遇到同一個問題就是iframe每刷新一次,代碼編輯器的光標都會被重置,這一點對用戶在線coding的體驗非常不好,所以筆者又看了一遍官方文檔,找到了cursor這個有意思的api,中文的意思就是說可以手動設置光標停止的位置,那么我們在每次光標變化的時候都強制設置為當前光標所在的位置,那么就不會應為iframe刷新的影響而被迫觸發失焦動作了。 代碼實現如下:

          const onCursorChange = (editor, data) => {
            const { line, ch } = data
            setCursor({ line, ch })
          }
          // ...
          <CodeMirror
            className={styles.codeWrap}
            value={html}
            options={{
              mode: 'xml',
              theme: 'material',
              lineNumbers: true
            }}
            onChange={handleChange}
            cursor={cursor}
            onCursor={onCursorChange}
          />
          

          至此我們的核心功能就實現了,如下圖:

          H5-Dooring

          對于界面中的下載html功能以及一件部署的功能都比較簡單,筆者已將代碼提交到github,感興趣的可以學習了解一下。

          1.3 服務端實現

          服務端實現主要是寫請求接口來存儲html頁面以及直出html頁面,對于跨域請求我們還需要處理跨域問題, 由于代碼邏輯比較簡單, 這里筆者的實現代碼如下:

          // server.js
          const Koa  = require('koa');
          const { resolve } = require('path');
          // const staticServer = require('koa-static');
          const koaBody = require('koa-body');
          const cors = require('koa2-cors');
          const logger = require('koa-logger');
          const fs = require('fs');
          
          const app = new Koa();
          app.use(koaBody());
          app.use(logger());
          
          // 設置跨域
          app.use(cors({
            origin: function (ctx) {
                if (ctx.url.indexOf('/dooring') > -1) {
                  return '*'; // 允許來自所有域名請求
                }
                return '';
            },
            exposeHeaders: ['WWW-Authenticate', 'Server-Authorization', 'x-test-code'],
            maxAge: 5,  //  該字段可選,用來指定本次預檢請求的有效期,單位為秒
            credentials: true,
            allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
            allowHeaders: ['Content-Type', 'Authorization', 'Accept', 'x-requested-with', 'Content-Encoding'],
          }));
          
          let htmlStr = ''
          
          app.use(async (ctx, next) => {
            console.log(ctx.url);
            if(ctx.url === '/dooring/render') {
              htmlStr = ctx.request.body;
              ctx.body = 'success';
            }else if(ctx.url.indexOf('/html') === 0) {
              ctx.type = "html";
              ctx.body = htmlStr;
            }
          });  
          
          app.listen(80);
          

          2. 應用場景

          對于在線coding的應用場景,筆者大致舉幾個應用場景。比如說我們在H5-Dooring編輯器中,要實現用戶自定義組件庫或者自定義h5頁面,并實時下載預覽,我們可以直接使用它,如下:

          H5-Dooring

          其次,對于需要部署和實時修改的網站,如果上線之后需要快速修改部署,我們可以直接在線coding之后一鍵部署。對于個人技術博客來說也是可以實現在線編輯和在線一鍵部署,這樣我們就無需依賴特定環境和特定電腦了。對于更多強大的應用,對于企業級來說,也可以實現在線coding的方式寫服務端代碼,在線寫sql。比如云開發,云計算領域催生的在線saas協作等。

          3. 總結

          以上教程筆者的一個簡單版本,基本上可以實現在線寫前端代碼,對于一些更復雜的功能,通過合理的設計也是可以實現的,大家可以自行探索,筆者已將在線編寫H5頁面的代碼和邏輯集成到H5-Dooring項目里,大家可以自行下載學習。

          github地址:H5-Dooring

          最后

          如果想學習更多H5游戲, webpack,node,gulp,css3,javascript,nodeJS,canvas數據可視化等前端知識和實戰,歡迎在《趣談前端》一起學習討論,共同探索前端的邊界。

          欲善其事,必先利其器。Python的學習過程少不了集成開發編輯環境(IDE)。這些Python IDE會提供插件、工具等幫助開發者加快使用Python開發的速度,提高效率。這里收集了一些對開發者非常有幫助的Python IDE(來自hittp://doc.okbase.net/havoc/archive/242858.html)。這些IDE的相關介紹如下所示。

          1.Pydev+Eclipse——最好的免費Python IDE

          Pydev是Python IDE中使用最普遍的,原因很簡單,它是免費的,同時還提供很多強大的功能來支持高效的Python編程。Pydev是一個運行在Eclipse上的開源插件,它把Python帶進了Eclipse的王國,如果你本來就是一個Eclipse的用戶,那么Pydev將帶給你家一樣的感覺。如果還不是,Pydev也值得你一試。

          Pydev能受到人們的歡迎得益于這些關鍵功能:Django集成、自動代碼補全、多語言支持、集成的Python調試、代碼分析、代碼模板、智能縮進、括號匹配、錯誤標記、源代碼控制集成、代碼折疊、UML編輯和查看,以及單元測試整合。

          Pydev是由AleksTtotic在2004年創建的,現在由Fabio Zadrozny 進行維護。Pydev在社區用戶的幫助,以及Liclipse、Squish、TraceTronic等公司或社團的贊助下持續進行更新。雖然Pydev是最好的開源Python IDE,但是它也和另一個名為Liclipse的產品一起打包。Liclipse是一個商業產品,同樣也構建在Eclipse上,提供了易用性改進和額外的主題選項。

          除了CPython,Pydev也支持Jython and IronPython,下載Pydev的網址為pydev.org/download.html。

          2.PyCharm——最好的商業 Python IDE

          PyCharm是來自JetBrains公司的全功能Python開發環境。在過去的15年里,JetBrains一直致力于發展頂級的開發工具,旨在讓開發工作變得輕松和愉快。

          PyCharm是專業的Python集成開發環境,共有兩個版本。一個是免費的社區版本,另一個是面向企業開發者的更先進的專業版本。PyCharm的普及可以從這一事實來衡量,即有很多大品牌公司用戶,像Twitter、Groupon、Spotify、eBay和Telefonica等都在使用PyCharm。

          PyCharm大部分的功能在免費版本中都是可用的,包括智能代碼補全、直觀的項目導航、錯誤檢查和修復、遵循PEP8規范的代碼質量檢查、智能重構、圖形化的調試器和運行器。它還能與IPython notebook 進行集成,并支持Anaconda 及其他的科學計算包,如matplotib和NumPy。

          PyCharm專業版本支持更多高級的功能,如遠程開發功能、數據庫支持以及對Web開發框架的支持等等。

          PyCharm最受歡迎的特性是它支持很多第三方Web開發框架,比如Django、Pyramid、web2py、google app engine和Flask,這些也使得它成為一個完整的快速應用集成開發環境。

          關于PyCharm的安裝和使用可在PyCharm的下載和安裝中介紹。

          3. VIM

          VIM是一個很先進的文本編輯器,在Python開發者社區中很受歡迎。它是一個開源軟件,遵循GPL協議,所以你可以免費使用它。

          雖然VIM是最好的文本編輯器,但是它提供的功能不僅限于此,經過正確的配置后,它可以成為一個全功能的Python開發環境。此外,VIM還是一個輕量級的、模塊化、快速響應的工具,非常適合那些很牛的程序員——編程從不用鼠標的人。

          初始化配置需要花費一定的時間,這是因為需要安裝一些VIM的插件,并進行配置以使它們能正常工作,最后你會發現這一切都是值得的。如果你在尋找一個Linux系統下的Python IDE,那么VIM將是你的不二選擇。

          4. Spyder Python

          Spyder Python是一個開源的Python集成開發環境,非常適合用來進行科學計算方面的Python開發。它是一個輕量級的軟件,是用Python開發的,遵循MIT協議.可免費使用。

          Spyder Python的基本功能包括多語言編輯器、交互式控制臺、文件查看、variableexplorer、文件查找、文件管理等。Spyder IDE也可以運行于Windows、Mac或者Linux系統之上。

          雖然Spyder是一個獨立的集成開發環境,能運行在Windows、Mac OS、Linux等系統之上。同時,它也可以作為PyQt的擴展庫,可以嵌入PyQt的應用中去。


          主站蜘蛛池模板: 国产成人久久精品区一区二区 | 精品一区二区ww| 99久久无码一区人妻a黑| 国产麻豆媒一区一区二区三区| 亚洲伦理一区二区| 国产亚洲福利精品一区二区 | 亚洲国产一区在线| 精品国产一区二区三区在线观看 | 无码av免费一区二区三区| 国产在线观看精品一区二区三区91| 麻豆亚洲av熟女国产一区二| 国产精品亚洲一区二区三区在线| 无码少妇一区二区浪潮av| 国产视频福利一区| 亚洲AV成人一区二区三区观看 | 国产SUV精品一区二区88L| 多人伦精品一区二区三区视频| 国产精品一级香蕉一区| 日韩精品中文字幕无码一区| 国产裸体歌舞一区二区| 国产探花在线精品一区二区| 亚洲线精品一区二区三区| 国产日韩一区二区三区在线观看| 中文字幕一区二区三区在线播放| 亚洲国产精品一区二区第一页免 | 国产成人精品无码一区二区三区| 国产精品毛片一区二区| 久久久不卡国产精品一区二区| 精品国产AⅤ一区二区三区4区 | 波多野结衣精品一区二区三区| 国产激情一区二区三区在线观看| 国产一区二区精品久久岳√| 香蕉久久AⅤ一区二区三区| 亚洲国产成人久久一区久久| 狠狠综合久久AV一区二区三区| 国精无码欧精品亚洲一区| 国产福利91精品一区二区三区 | 亚洲中文字幕丝袜制服一区| 国内偷窥一区二区三区视频| 99久久精品日本一区二区免费| 女女同性一区二区三区四区|