python項目管理工具
前提:用來做數據處理和相關的系統開發
剛學python時,面對簡陋的官方版idle和一大堆開發平台和發行版,不知道究竟如何下手。在進行多方嘗試後,我最後的選擇是Anaconda + Pycharm,用anaconda集成的ipython做工作台,做一些分析和小段程序調試的工作,用Pycharm寫相應腳本和程序包的開發。這兩個工具都是跨平台的,也都有免費版本。
具體來說Anaconda集成了幾乎所有我需要的包庫,包含了我整個工作流程,做數據分析的pandas\scipy\numpy、繪圖的matplotlib、讀寫Excel文檔的xlrd/xlwt,鏈接SQL資料庫的SQLalchemy、機器學習框架sklearn等。對於Anaconda集成的兩個工作平台,Spyder——一個類似於Matlab和Rstudio的IDE,是專注於面向數據的分析的,因為其特點也主要是數據區的存在,可以即時知道變數值的變化;Ipython——一個基於cell的shell界面,可以理解為python自帶shell的增強版,它將程序分成一塊一塊的cell,每個cell可以包含多條語句,可以單獨調試運行,並將結果保存在內存中,cell之間可以相互調用,並保持一定的相互獨立。
可以說有了anaconda自帶的這兩個工具,足夠做數據處理相關的工作了(本身anaconda就是一個為了數據科學而誕生的發行版),但如果涉及到腳本程序和包的開發,感覺spyder還是有點弱,在試過IDE,代碼編輯器(比如visual code、sublime等)+插件,這兩種方案後,我最後選擇了集成度更高的成熟IDE——Pycharm替換spyder作為主要的開發平台,看我頭像也可以知道我是一個噴氣大腦的死忠,他們家的IDE真的很好用~理由如下:
1、首先作為學生,可以通過e郵箱申請到Jetbrains全家桶,即便無法獲取授權,pycharm的community版本免費並且功能足夠
2、對於pycharm,可以方便快捷地切換python不同版本的解釋器,甚至可以安裝相同版本的python解釋器配置不同的開發環境,這可以解決有些包之間沖突的情況,也可以針對有些框架按需裝包;並且pycharm內置包管理,可以免去pip或者conda方式管理包。
3、pycharm這個IDE的顏色方案、拼寫補全、函數聯想、函數跳轉源代碼、斷點調試及debug等功能都讓我用的十分順手。
總之我現在的工作流程就是,先用對我需要的功能進行設計,而後在ipython界面下設計調試每個功能模塊,調試成功後放到pycharm中組合起來,寫成腳本文件,最後用pycharm做調試形成成品。
2017、10、25 補充:
Pycharm作為IDE還有兩個功能值得使用,一個是可以結合unitest包做我們開發模塊的單元測試,另一個就是與svn、git等版本工具合作進行我們程序的版本控制,此外,在最新版的pycahrm當中,除了左側折疊顯示程序層次,下方也有我們當前游標所在位置對應的層次,並可以方便進行跳轉。
總之,用pycharm寫python真是越用越順手~
❷ 一名Python程序員會哪些好用的工具
很多Python學習者想必都會有如下感悟:最開始學習Python的時候,因為沒有去探索好用的工具,吃了很多苦頭。後來工作中深刻體會到,合理使用開發的工具的便利和高效。今天,我就把Python程序員使用頻率比較高的5款開發工具推薦給大家,希望對大家的工作和學習有幫助。
一、最強終端:Upterm
本來想推薦 fish 或者 zsh,但其實這兩個我也主要是貪圖自動補全這個特性。最近在用的這個 Upterm 其實很簡單好用,它是一個全平台的終端,可以說是終端里的 IDE,有著強大的自動補全功能。之前的名字叫 BlackWindow,有人跟他說這個名字不利於社區推廣,改名叫 Upterm 之後現在已經17000+ Star了。
二、互動式解釋器:Ptpython
一個互動式的 Python 解釋器。支持語法高亮、提示甚至是 vim 和 emacs 的鍵入模式。其實我們在課程里提供的在線終端也內置了 ptpython。
三、包管理必備:Anaconda
強烈推薦Anaconda ,它能幫你安裝好許多麻煩的東西,包括: Python 環境、pip 包管理工具、常用的庫、配置好環境路徑等等。這些事情小白自己一個個去做的話,容易遇到各種問題,帶來挫敗感。如果你想用Python搞數據方面的事情,就安裝它就好了,它甚至開發了一套JIT的解釋器Numba。所以 Anaconda有了JIT之後,對線上科學計算效率要求比較高的東西也可以搞了。
四、編輯器:Sublime3
小白的話當然還是推薦從PyCharm開始上手,但有時候寫一些輕量的小腳本,就會想用輕量級一點的工具。Sublime3很多地方都有了極大的提升,並且用起來比原來還要簡單。配合安裝Anaconda或CodeIntel插件,可以讓 Sublime擁有近乎IDE的體驗。
五、前端在線編輯器:CodeSandbox
雖然這個不算是真正意義上的Python開發工具,但如果後端工程師想寫前端的話,這個在線編輯器太方便了,簡直是節省了後端工程師的生命啊!不用安裝npm的幾千個包了,它已經在雲端完成了,采讓你直接就可以上手寫代碼、看效果。對於 React、Vue 這些主流前端框架都支持。算是一個推薦補充吧。
❸ python 用什麼來開發工具
(一)github
Git是一個分布式的版本控制系統,最初由 Torvalds編寫,用作Linux內核代碼的管理。在推出後,Git在其它項目中也取得了很大成功,尤其是在Ruby社區中。目前,包括Rubinius、Merb和Bitcoin在內的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。
(二)Vim
Vim 是高級文本編輯器,旨在提供實際的 Unix 編輯器『Vi』功能,支持更多更完善的特性集。Vim 不需要花費太多的學習時間,一旦你需要一個無縫的編程體驗,那麼就會把 Vim 集成到你的工作流中。
(三)Eclipse with PyDev
Eclipse 是非常流行的 IDE,而且已經有了很久的歷史。Eclipse with Pydev 允許開發者創建有用和互動式的 Web 應用。PyDev 是 Eclipse 開發 Python 的 IDE,支持 Python,Jython和 IronPython 的開發。
(四)Sublime Text
Sublime Text 是開發者中最流行的編輯器之一,多功能,支持多種語言,而且在開發者社區非常受歡迎。Sublime 有自己的包管理器,開發者可以使用TA來安裝組件,插件和額外的樣式,所有這些都能提升你的編碼體驗。
❹ 如何用python做一個設備運維軟體
Python開發的jumpserver跳板機
使用python語言編寫的調度和監控工作流的平台內部用來創建、監控和調整數據管道。任何工作流都可以在這個使用Python來編寫的平台上運行。
企業主要用於解決:通俗點說就是規范運維的操作,加入審批,一步一步操作的概念。
是一種允許工作流開發人員輕松創建、維護和周期性地調度運行工作流(即有向無環圖或成為DAGs)的工具。這些工作流包括了如數據存儲、增長分析、Email發送、A/B測試等等這些跨越多部門的用例。
這個平台擁有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,並且提供了鉤子使得系統擁有很好地擴展性。除了一個命令行界面,該工具還提供了一個基於Web的用戶界面讓您可以可視化管道的依賴關系、監控進度、觸發任務等。
來個小總結
❺ 如何管理python項目
Virtual Environments
首先Python似乎沒有類似Maven/Ant這樣的項目管理工具。那麼當一台機器上有多個python項目,且這些python項目各自有不同的依賴,不想互相干擾時怎麼辦呢?
官方做法是使用Virtual Environments將每個項目互相隔離開。一般情況下,我們使用python解釋器運行python腳本或mole:
>python myScript.py
運行的目錄就是安裝的python解釋器,即python.exe所在的目錄。而Virtual Environments就是給每個項目都生成一個項目獨有的目錄,這個目錄里包含python解釋器,python標准類庫和其他各式各樣的必要文件。這樣每個項目就可以使用不同的解釋器和類庫,且互不幹擾。
創建過程也很簡單。首先找到pyvenv.py所在的目錄,這個文件通常在安裝目錄的自目錄\Tools\scripts下。這是一個生成Virtual Environments的工具。然後運行:
>pyvenv tutorial-env
運行後就會生成一個名為「tutorial-env」的目錄。找到這個目錄,可以發現正如官網所說,這個目錄包含運行python項目所必須的一切文件。使用在各自Virtual Environments目錄里包含的解釋器來運行特定的python項目就可以了。同時,對於那些每個項目使用的特定的依賴(packages或mole),則加入到各自Virtual Environments目錄的類庫子目錄中就可以了。這里需要注意的是。創建完Virtual Environments後,還需要激活。做法很簡單,在上例tutorial-env目錄下執行下的命令即可:
>tutorial-env/Scripts/activate
PIP
PIP是官方提供的安裝python第三方類庫(packages/mole)的工具。它可以去PPI(python packages index)查找或下載第三方類庫。網址是:https://pypi.python.org/pypi
找到上例Virtual Environments目錄下的pip.exe並運行:
>pip install lib_name
即可安裝,其他功能請自行查看手冊。如果是在python的安裝目錄下運行pip,則類庫可以被非Virtual Environments的所有項目使用。PIP安裝的其實是package。
Requirements.txt
在Virtual Environments目錄下運行:
>pip freeze > requirements.txt
可以生產一個當前項目所有依賴類庫及其版本的list文件,文件名就是requirements.txt(當然也可以用別的名字)。文件內容大致如下:
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0
使用requirements.txt的好處就是:
The requirements.txt can then be committed to version control and shipped as part of an application. Users can then install all the necessary packages with 「install -r「:
>pip install -r requirements.txt
這樣就可以方便的管理項目依賴了。如果不使用requirements.txt,直接使用version control存儲Virtual Environments目錄,其他程序員直接下載該目錄就可以開始項目開發的做法也可以。
❻ python初學者工具用什麼工具好呢
對於java程序員,去學習python,pydev+eclipse應該是不錯的選擇。但對於python程序員選擇會很多,初學者專,安裝activepython,自帶的IDLE,非屬常不錯,它是純粹的python用TK寫的,可以完成所有的單文件任務;熟練之後可以選擇更專業的IDE,比如pycharm,專業的django開發IDE。對於我個人,認識python已經兩年,更喜歡sublime text,一款非常有質感,而且功能非常有吸引力(比如它的多行修改功能,插件功能)的IDE,它可以為多種語言服務,並且對於python的以空格為區分語句的風格,sublime,非常不錯!
❼ 新手開發 python 運維工具碰到了難題望大神賜教。
自學了一段時間python,感覺可能是我學習的姿勢不太對。總是感覺python相比於shell和perl更偏向於web開發。而對linux的運維管理偏弱。
拋開fabric等這類用python開發的運維工具不談。自己在日常運維中運用python能做些什麼?比shell腳本便捷或效率高的地方又體現在哪裡?
現在只用python寫過部分日誌分析腳本和從頁面中提取uid生成鏈接然後測試播放等動作的簡單腳本。
其他的就不知道做些什麼好了。
想請v2上的前輩多給些指點,如果能有些具體實例就更好不過了。
多謝大家
❽ 學python,可以用哪些開發軟體,用什麼開發軟體最好
首推的Pycharm。
首先,PyCharm用於一般IDE具備的功能,比如, 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制
另外,PyCharm還提供了一些很好的功能用於Django開發,同時支持Google App Engine,更酷的是,PyCharm支持IronPython。
PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用於支持Django框架下的專業Web開發。
其次是sublime text,Sublime Text 支持多種編程語言的語法高亮、擁有優秀的代碼自動完成功能,還擁有代碼片段(Snippet)的功能,可以將常用的代碼片段保存起來,在需要時隨時調用。支持 VIM 模式,可以使用Vim模式下的多數命令。支持宏,簡單地說就是把操作錄制下來或者自己編寫命令,然後播放剛才錄制的操作或者命令。
Sublime Text 還具有良好的擴展能力和完全開放的用戶自定義配置與神奇實用的編輯狀態恢復功能。支持強大的多行選擇和多行編輯。強大的快捷命令"可以實時搜索到相應的命令、選項、snippet 和 syntex, 按下回車就可以直接執行,減少了查找的麻煩。即時的文件切換。隨心所欲的跳轉到任意文件的任意位置。多重選擇功能允許在頁面中同時存在多個游標。
還有Jupyter, Jupyter Notebook(此前被稱為 IPython notebook)是一個互動式筆記本,支持運行 40 多種編程語言。
Jupyter Notebook 的本質是一個 Web 應用程序,便於創建和共享文學化程序文檔,支持實時代碼,數學方程,可視化和 markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等 。數據挖掘領域中最熱門的比賽 Kaggle 里的資料都是Jupyter 格式 。
最後就是最基本的nopad++,最開始的時候是實用這款作為開發工具進行基礎練習。