簡體   English   中英

我需要什么軟件包版本?

[英]What package version do I require?

我正在開發一個使用其他幾個軟件包(numpy,scipy等)的Python軟件包,並且想知道是否有一種簡單的方法來確定每個軟件包所需的最低版本。 例如,我需要scipy 0.11,因為在此之前我所使用的某些功能不存在。 有沒有比檢查我進行的每個函數調用更簡單的方法了? 那會花點時間...

我知道我只需要我當前正在運行的版本,但我不希望人們在不需要時必須更新一堆軟件包(即,我正在運行scipy 0.13,但不需要要求)。

確實沒有簡單的方法可以做到這一點。 任何一種自動化工具都必須依賴於元數據,該元數據告訴它每個函數,類等首先添加到哪個版本的庫中。(即使如此,接口或行為可能在現有函數,您依賴的方式。)大多數項目都沒有此類信息; 這樣做的話,通常只能采用類似於Python文檔的形式(例如here ),您必須對其進行抓取和解析。

更好的解決方案是首先確保您具有足夠的測試范圍,然后安裝scipy 0.11並對其進行測試。 它行得通嗎? 太好了,您支持0.11。 如果沒有,您可以嘗試使其正常運行,或者僅說您需要0.12。

“足夠”的含義取決於您的目標市場。 與針對專家開發人員的開源庫相比,通過支持合同出售給企業客戶的商業程序將需要對您聲稱要支持的依賴項進行更嚴格的測試。

在某些情況下,您可以避免記錄測試的內容,並且不管您的代碼是否適用於早期版本,都可以將其打開。 0.11可能有效也可能無效,並且如果用戶想嘗試它(特別是如果他們想向您或Wiki等社區資源報告其體驗),請鼓勵使用它,但不要保證會正式支持它們。

這是另一個SO Q / A會議建議的內容:

“對於我編寫的具有外部依賴性(第3方庫)的python東西,我編寫了一個腳本,用戶可以運行該腳本來檢查其python安裝,以查看是否安裝了適當版本的模塊。

對於沒有定義的“版本”屬性的模塊,您可以檢查其包含的接口(類和方法),並查看它們是否與期望的接口匹配。 然后,在您正在使用的實際代碼中,假定第三方模塊具有您期望的接口。”

在運行時檢查Python模塊版本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM