簡體   English   中英

整理下載的python庫

[英]Organizing downloaded python libraries

我注意到我的python庫和其他依賴項存儲在目錄層次結構的不同位置。 例如,

  • /Library/Python/2.7/site-packages/
  • /usr/local/lib/python2.7/site-packages/
  • /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
  • /Users/<name>/bin/

最近的一次升級失敗(並且我的$PATH變量現在包含7個目錄)使我相信我需要以某種方式重新組織這些文件。

1)當“插入”或“釀造”新庫時,例如,下載的文件應該進入哪個特定目錄? (例如/Library/python/2.7/site-packages)

2)是否有有用的資料來組織個人檔案系統? (特別是在下載的python庫中,或更普遍地)

讓我們按順序處理這些:

1)當“插入”或“釀造”新庫時,例如,下載的文件應該進入哪個特定目錄?

首先,下載的文件進入一個臨時目錄,並在安裝后被刪除。 pipbrew都會自動處理該問題。

對於Python軟件包,無論是否通過pip安裝,您都可以在系統級安裝和特定於用戶的安裝之間進行選擇(請參閱User Installs ),但是否則,它們只是進入您的Python站點軟件包。 可以配置該位置,但是沒有充分的理由。 對於Apple的預裝Python,它是/Library/python/2.7/site-packages 如果您需要更多控制權,則不應嘗試保留自定義站點包目錄(或安裝多個Python); 使用virtualenv構建單獨的虛擬環境,然后pip將安裝到當前處於活動狀態的任何環境中,而不是安裝到常規站點程序包中。

對於用brew安裝的程序和庫,它們會內置到“ kegs”中,位於/usr/local/Cellar下的隔離目錄中,然后任何有用的內容都將從那里鏈接到/usr/local/bin/usr/local/lib等等。如果您想了解更多,Homebrew文檔將對其進行詳細說明。 當然,這包括您安裝為Python軟件包依賴項的庫。 例如,如果您brew install libxslt以便可以pip install lxmlbrew不知道為什么要安裝libxslt ,它只是將其構建在一個桶中,並且像其他任何東西一樣將其鏈接到/usr/local/lib

無論哪種方式,你應該試圖整理東西。 pipbrew知道它們的安裝位置,如果事后將它們擰緊,則卸載,更新等操作可能會中斷。


而且最近一次升級失敗(其中$ PATH var現在包含7個目錄)使我相信我需要以某種方式重新組織這些文件。

您的$PATH與Python查找庫的位置無關。 那就是您的shell尋找可執行程序的地方。 Python查找的是sys.path ,這是完全不同的東西。


我注意到我的python庫和其他依賴項存儲在目錄層次結構的不同位置

不,他們真的不是。 您安裝的每個Python庫都進入site-packages目錄。

那么, sys.path上的所有其他內容呢? 好吧,這里有Python標准庫( /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7和/或/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7.zip ),Apple預安裝的其他模塊( /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python ),以及這兩個位置中的各種子目錄(以及zip文件和eggfile文件),當然是當前的工作目錄( '.''' ),應該是它。

(即/usr/local/python、/Library/python/2.7/site-packages或/ usr / bin / python ..)

/usr/bin/python不是存儲庫的地方。 根本不是目錄; 它是一個可執行文件。 當您在終端上鍵入python或運行以#!/usr/bin/python#!/usr/bin/env python開頭的腳本時,將運行該程序。

/usr/local/python根本不應該存在。 它不是Apple預先安裝的Python,Python.org官方安裝或Homebrew安裝的標准路徑的一部分。 如果您已經創建了該文件並將其添加到sys.path ,那么……如果您不想這樣做,請不要這樣做。

如果您的意思是/usr/local/bin/python ,那么(a)是可執行文件,而不是庫的位置,並且(b)這意味着您已經與Apple預裝的Python一起安裝了第二個Python,並且如果您無法保持它們筆直,您可能應該擺脫它。

暫無
暫無

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

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