GitHub 上有什麼值得學習,簡單的,易讀的 Python 項目?

來源:互聯網
上載者:User
本人是大二的學生,平時無聊用Python給Mac寫了一個小的天氣預報的項目, 發到了github上了,https://github.com/jamesxu182/MyWeather
非常好奇大型軟體是怎麼開發的,複雜的UI是如何設計的。
敢問大神github上有哪些簡單的,適合我這個水平的Python項目。

回複內容:

Ultimaker 3D印表機的上位機軟體Cura的UI是Python寫的,用的Wxpython。當然,引擎是C++寫的。我個人覺得挺有趣的。軟體規模適中,功能完整,包含了跨平台配置的知識,和C++引擎通訊的知識,OpenGL等。涉及一些3D列印方面的專業知識但是並不複雜,重點還是在UI和功能設計
daid/Cura · GitHub

gleitz/howdoi · GitHub
一個很有趣的命令列小工具,代碼不多,寫的非常 Pythonic。

再推薦幾個適合閱讀的好項目,不過可能比較大,要花點功夫去讀。
  • kennethreitz/requests · GitHub
  • mitsuhiko/flask · GitHub
  • kennethreitz/tablib · GitHub
  • mitsuhiko/werkzeug · GitHub
tornado算麼。bottle.pyshadowsocks就不錯啊,好像作者去知乎了

具體還看想學些那方面了,也要看自身的基礎如何,同時也建議分階段來看。

不過具體的話還是依題主的情況來說好了,不然這個問題也就沒有具體的答案。


首先可以說點不想乾的話題,比如:

  • 題主的代碼倉庫裡好像沒有ignore掉pyc檔案...
  • 在看到題主用了bs4的同時我還看到了urllib2... https://github.com/Jamesxu182/MyWeather/blob/master/getWeathers.py#L6
  • 以及從這裡可以看出題主的前端水平似乎... https://github.com/Jamesxu182/skedody/blob/master/index.html#L32

由此似乎可見:

  • 題主git還沒玩熟 or 有點不拘小節
  • 對python的生態圈還不是很瞭解 or 不屑於用requests那樣的裝逼庫
  • ... ( ╯□╰ )

然後,作為一名從web開發起步的老菜鳥,先分享下大概的學習經曆好了。


鄙人大概也是大二的時候(2012年秋)真正開始用python的,當然前面有玩flash的背景,所以對同類的指令碼語言,上手還算比較習慣。比如當時的ActionScript2.0的水平大概是這樣子的(300行左右代碼):http://koalangelion.deviantart.com/art/Restend-379547522


中間的過程還是從略好了,畢竟是業餘玩家。到現在零零碎碎也有兩年了吧,現在的python水平… 還真不好說,簡單舉個粒子大概是這樣的:https://gitcafe.com/restait/buffer/tickets/22

所以回答這個問題的話,首先我覺得這些編程的東西,對於題主來說,需要學習的還有很多。。。

當然能在大二就用python寫個mac上用的小工具還知道放到github上,且不說代碼水平,至少這種意識還是挺不錯的。然而人和人之間,時代與時代之間自然是有差別,自然同為大學生,我還買不起mac,自然同為大學生,我也不能和那些初二就混IRC還發pull request的中學生相比…

所以我覺得題主可能更在意的是怎麼組織一個大型的軟體項目,以及如何造一個複雜的UI。而這些東西,其實github上面不是很多,能作為學習參考的就不多了,而使用python作為主力語言的就更少了... 原因大家懂的,至少開源出來的不是很多。


而且這裡有兩點提示:一是python不太適合用來構造一個完整的大型項目,二是python在圖形介面這邊確實還是短板。


然後有了上面這些鋪墊,感覺再推薦些好的github項目也不遲。這裡我覺得其實可以避免一個誤區,就是很多好的python項目,恰恰不在github上面,比如SQLAlchemy(bitbucket,你懂的),比如BeautifulSoup(lauchpad)。所以這兩個雖然也是適合研讀的好項目,不過因為不符合github這個約束,類似的也就不涉及了。


先說些個人覺得對自己學習python比較有益的且在github上託管的項目好了(web開發向top6,下面的條目不含http://github.com/首碼):

  • pylons/pyramid
  • kennethreitz/requests
  • defnull/bottle
  • andymccurdy/redis-py
  • douban/douban-client
  • mitsuhiko/jinja2

這些項目大多是看過源碼的,不過主要還是有文檔的看文檔。不過要說簡單的,適合題主水平的,可以看下redis-py、requests和douban-client,pyramid這種結構比較龐大的,一開始上手看源碼可能會有點吃力(依賴zope.interface的項目大多都這樣,比如twisted,scrapy)。bottle的話雖然簡單,但是沒有什麼太多實際可以借鑒的地方,畢竟把全部代碼揉在一起,在IDE還沒有智能到可以自動分頁的時代,看起來實在是太噁心了...


其他有些項目也是不錯的,不過本人畢竟沒有細看過源碼(比如shadowsocks),這裡也就不做推薦了。所以真要推薦的話,題主可以在上面的六個裡面隨機選兩個瞭解下。有時候上手痛點也無所謂,只要不是太噁心的項目,也還是能摸透的(實不相瞞,pyramid從入門到玩轉大概有一年的時間間隔)。


而django之流,拿來用還可以,深入的話其實也是個巨坑,當然這裡我還是不黑django了...


最後留點相關提示,有時候學習一個項目,具體的代碼實現不是重點,而是如何一步步演化且維護到現在,那些最初留下來的,以及後來被捨棄掉的,這些決策,其實也可以理解為一種潛在的設計模式,而所有這些潛藏在項目之下的,才是更值得學習的地方。至於為什麼前面說六選二呢,因為單從一個項目去認知整個python世界,也是片面的,於是乎這裡就不嘲諷django和tornado了。所以進而推廣,題主要是有志於做點大項目,有空應該多瞭解些工業上常用的語言,參與些實戰項目攢攢經驗,畢竟單從python去瞭解這個編程世界也是片面的,於是乎這裡我就不黑js了。

n0tr00t/Sreg · GitHub

這個,可以查看指定Email或手機號碼或使用者名稱都註冊過哪些網站。
也就200行左右哦。
還可以擴充網站註冊查詢外掛程式


一看嚇一跳,原來那些個聽都沒聽過的網站我都註冊過?Django強烈推薦mininet,搞網路的mininet源碼是必讀的。代碼結構清晰易讀,基本上一兩個小時就能夠完全讀懂mininet,但要理解裡面的精髓,還是需要時日的。我推薦requests,可以學習Python代碼和注釋的風格
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.