主頁 > 後端開發 > Python開發者的 6 個必備庫!你都知道嗎?

Python開發者的 6 個必備庫!你都知道嗎?

2020-09-30 16:53:20 後端開發

無論你是正在使用 Python 進行快速開發,還是在為 Python 桌面應用制作原生 UI ,或者是在優化現有的 Python 代碼,以下這些 Python 專案都是應該使用的,

?

Python 憑借其易用的特點,已經被工業界和學術界廣泛采用,另一方面,Python 豐富的第三方專案——庫、附加組件,和輔助的開發成果——使得 Python 語言的應用范圍被不斷擴大,

其中一些專案,比如 PyInstaller 和 WxPython ,為那些制作桌面應用和終端應用的 Python 開發者提供了便利,其他的專案, 比如 PyPy , 則是用來給服務器端 Python 應用提供額外的動力,還有一些,像 PBR 、CFFI 和 MyPy , 適用于差不多所有五花八門的 Python 應用,無論在什么地方運行,

如果你是一個 Python 開發者,所有這六個專案都值得你來熟悉一下,而且所有這些專案,在近幾周都發布了新的主要版本,

Python 必備之 PyPy

PyPy 主要用于何處?

如果你需要更快的 Python 應用程式,最簡單的實作的方法就是通過 PyPy ,Python 運行時與實時(JIT)編譯器,與使用普通的 Python 對等程式相比,使用 PyPy 的 Python 應用程式的運行速度平均提升7.5倍,不幸的是,PyPy 與許多 Python 的明星框架并不是很好地兼容, PyPy 5.9 在解決這個問題上取得了重大進展,

PyPy 5.9 的功能

資料科學框架 NumPy 和 Pandas 現在運行在 PyPy 的 Python 2.7 兼容版本上,這些框架的大部分問題來源于 PyPy 與現有 C 代碼的介面,為了解決這個問題,PyPy 5.9 對 CFFI 庫(見下文)和 PyPy 的 Python C API 兼容性層進行了改進,

此外,在 5.9 發布版本中,PyPy 的 JSON 決議器在處理多種 JSON 物件,尤其是那些重復使用的相同的詞典鍵值時,明顯更快,

何處下載 PyPy 5.9

你可以直接從 PyPy 的網站下載二進制版本, 官方二進制檔案包括 Windows、Mac OS 和 Linux 的不同 CPU 架構,請注意,為了兼容 Python 2.7 和 Python 3.5 ,存在不同的二進制檔案,因此請確保你正在獲取與你將要運行的腳本所匹配的版本,

BitBucket 上有源代碼和錯誤跟蹤記錄,

Python 必備之 CFFI

CFFI 主要用于何處?

C 外部函式介面庫 (CFFI)為 Python 應用程式與獨立 C 庫的互動提供了一種機制,雖然 Python 的 stock 版本,CPython,也擁有自己的庫來完成此類功能,稱為 Ctypes ,但對 Python 用戶來說,比起 Ctypes ,CFFI 使得與 C 庫的互動更容易、更簡便,

CFFI 1.11 的功能

與 PyPy 一起更新的 CFFI v1.11 增加了很小但很有用的改動,現在可以在即將發布的 Python 3.7 上使用betas了,在 Windows 上更好地支持外部錯誤處理,并支持 C 語言中更多的現代標準型別,例如 float/double _Complex 和 char16_t和char_32t 型別,最后兩個也是最重要的,在 C 庫中默認使用 Unicode 編碼,

何處下載 CFFI 1.11 ?

CFFI 在 Python Package Index 上可以單獨下載 ,或通過 Python 的 pip 工具安裝:pip install cffi ,原始碼和問題跟蹤可以在 BitBucket 上找到,

Python 必備之 PyInstaller

PyInstaller 主要用于何處?

關于 Python 的最常見的問題之一是“如何從 Python 腳本中生成獨立的可執行檔案?” PyInstaller 一直是對此最好的答案之一,

PyInstaller 3.3 的功能

PyInstaller 將 Python 應用程式打包到單目錄或單檔案的可執行檔案中,捆綁任何所需的第三方庫,并可與絕大多數常見的庫和框架配合使用,

PyInstaller 3.3 中最大的改進是對 Python 3.6 的支持,因為鑒于 Python 3.6 已經發布這確實是必要的

PyInstaller 3.3 還包括一個更廣泛兼容的引導加載程式,適用于 Windows 可執行檔案,并擴展了對捆綁常見庫(如 QT、GTK +、NumPy 和 Django )的支持,

PyInstaller 在不久之后可能添加的一個功能是交叉打包,例如,在 Windows 上創建 Mac 兼容的應用程式,你需要在要部署的同一平臺上運行該 PyInstaller ,無論是 Windows、Mac 還是 Linux ,

何處下載 PyInstaller 3.3 ?

PyInstaller 可以通過 Python Package Index 安裝 ,也可通過 Python 的 pip 工具安裝:pip install pyinstaller ,對于那些需要自己編譯引導加載程式的人, 原始碼可以在 GitHub 上找到,但對多數人而言是不需要這么做的,

Python 必備之 Python Build Reasonableness (PBR)

Python PBR 主要用于何處?

Setuptools 是用于打包 Python 專案的標準的 Python 問題子系統,管理特定專案的 Setuptools 可能會變得非常繁瑣,特別是在自動生成需求、管理檔案檔案或編輯專案貢獻者資料時,

Python PBR 的功能

PBR , Python Build Reasonableness 的縮寫,是以一致的方式用于管理 Setuptools 包的庫,它可以自動化許多 Setuptools 打包的設定,例如版本號、生成作者和 ChangeLog 檔案,以及生成 Sphinx 風格的檔案,PBR 最初是作為 OpenStack 專案的一部分開發的,但現在你所使用 PBR 中維護的內容與 OpenStack 已經沒有任何聯系了,

哪里可以下載 Python PBR ?

PBR 在 Python Package Index 上可以找到 ,并且可以和 pip 一起安裝,只需要輸入 pip install pbr 即可, 原始碼可在 GitHub 上下載,

Python 必備之 WxPython

WxPython 主要用于何處?

想要實作跨平臺桌面應用程式的 Python 開發人員可以從多個工具包中進行選擇, WxPython ,是 WxWidgets 庫的一個封裝,使用了其所支持主機平臺的原生 UI 元素,包括 Windows、Mac、Linux 和其他類 Unix 作業系統,

WxPython 4.0 的功能

早期版本的 WxPython 被放棄了是由于其傳統的設計決策,使其變得越來越慢,而且不太適合使用,為了解決這個問題,WxPython 的開發人員對 WxPython 的 4.0 分支做了重大改變,

目標是允許開發人員更快地上手 WxPython ,并且使通過它創建的框架和應用程式更加高性能和易維護,然而,為了使用 WxPython 4.0 ,任何現有的使用 WxPython 專案都 需要修改 ,

何處可以下載 WxPython 4.0 ?

WxPython 4.0 官方版本依然是 beta 版,它可以在 Python Package Index 上找到 ,即通過 pip install wxpython 命令,在正式發布前它可能會更新數次,注意經常檢查更新,

那些想直接破解的人可以查看 GitHub 上的代碼庫 ,請注意,WxPython 的 4.0 分支以 “Phoenix” 代號進行標記的,以使其與早期版本不同,

Python 必備之 Mypy

Mypy 主要用于何處?

Python 的動態性既是一種福音,也是一種煩惱,對于快速構建軟體非常棒,但是當代碼難以推理、測驗和除錯時,并不是很棒, Mypy 在編譯時向 Python 添加靜態型別檢查,使 Python 程式更加一致和可維護,并且不會增加運行時開銷,

Mypy 0.530 的功能

Mypy 0.530 添加了不同 協議 的支持,該協議是用于 Python 子類的目前實驗性型別的功能,它還在僅用于包含特定型別的物件的字典中添加 “TypedDict” 型別,并且可以逐個對檔案進行更嚴格的型別檢查的選項,

哪里可以下載 Mypy 0.530 ?

Mypy 可以在 Python Package Index 上找到 ,并通過 pip install mypy 來安裝,那些對 Mypy 實作感興趣的人可以通過 GitHub 檢出原始碼,

 

此文轉載文,著作權歸作者所有,如有侵權聯系小編洗掉!

原文地址:https://www.tuicool.com/articles/3e6V73J

 

想要了解更多的(點擊這里查看)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/142638.html

標籤:其他

上一篇:喜歡看電影來哦!教你如果使用Python網路爬蟲爬取豆瓣高分電影!

下一篇:教你使用Python遇到的例外的處理方式!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more