搜尋結果

×

如何在 Docker 中查看本地 PIP 檔案和比對 GitHub 上的開源倉庫

查看和比對本地安裝的 PIP 檔案,並學習如何與 GitHub 上的開源庫進行比對,從而提升開發效率和理解庫的運作。

在開發和調試 Python 應用時,了解安裝的庫和它們的實現是非常重要的。本文將指導你如何在 Docker 環境中查看本地 pip 安裝的庫檔案,特別是 LangChain 版本,並解釋為何這對開發和維護至關重要。

為何要查看本地 PIP 檔案

1. 理解庫的實現

查看庫的源碼幫助開發者理解其內部邏輯,這對於解決問題或擴展功能非常重要。

2. 理解問題

如果在使用某個庫時遇到問題,直接查看其源碼可以幫助你更快地定位問題。

3. 學習最佳實踐

開源庫的實現往往包含許多最佳實踐和設計模式,透過學習這些源碼可以提升自己的編程能力。

如何在 Docker 中查看 PIP 檔案

- 進入 Docker 容器

使用 docker exec 命令進入正在運行的容器:

docker exec -it <容器ID或名稱> /bin/bash

- 確認 PIP 安裝的庫:

檢查 pip 版本和安裝路徑:

root@08d912ebf816:/usr/local/lib# pip --version
pip 23.0.1 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

- 導航至 site-packages 目錄:

找到 site-packages 目錄並查看已安裝的庫,使用以下命令:

cd /usr/local/lib/python3.9/site-packages
ls

- 查看特定庫的源碼:

如果你想查看某個特定庫的源碼(例如 langchain_community),可以進入該庫的目錄並查看其 .py 檔案:

root@08d912ebf816:/usr/local/lib/python3.9/site-packages/langchain_community# ls
__init__.py cache.py  chat_models       document_loaders      graphs      py.typed  utilities
__pycache__ callbacks  cross_encoders       document_transformers  indexes      retrievers  utils
adapters chat_loaders  docstore       embeddings      llms      storage  vectorstores
agent_toolkits chat_message_histories document_compressors  example_selectors      output_parsers  tools

root@08d912ebf816:/usr/local/lib/python3.9/site-packages/langchain_community# cd embeddings/

root@08d912ebf816:/usr/local/lib/python3.9/site-packages/langchain_community/embeddings# ls
__init__.py     cohere.py      gpt4all.py      llamafile.py   ollama.py         tensorflow_hub.py
__pycache__     dashscope.py      gradient_ai.py     llm_rails.py   openai.py         text2vec.py
aleph_alpha.py     databricks.py     huggingface.py     localai.py    openvino.py         vertexai.py
anyscale.py     deepinfra.py      huggingface_hub.py     minimax.py    optimum_intel.py        volcengine.py
awa.py      edenai.py      infinity.py     mlflow.py    premai.py         voyageai.py
azure_openai.py     elasticsearch.py  infinity_local.py     mlflow_gateway.py   sagemaker_endpoint.py        xinference.py
baichuan.py     embaas.py      itrex.py      modelscope_hub.py   self_hosted.py        yandex.py
baidu_qianfan_endpoint.py  ernie.py      javelin_ai_gateway.py  mosaicml.py    self_hosted_hugging_face.py
bedrock.py     fake.py      jina.py      nemo.py    sentence_transformer.py
bookend.py     fastembed.py      johnsnowlabs.py     nlpcloud.py    solar.py
clarifai.py     gigachat.py      laser.py      oci_generative_ai.py  spacy_embeddings.py
cloudflare_workersai.py    google_palm.py    llamacpp.py     octoai_embeddings.py  sparkllm.py

在CMD中用cat 來查看 ollama.py 檔案

root@08d912ebf816:/usr/local/lib/python3.9/site-packages/langchain_community/embeddings# cat ollama.py

- 查看Python安裝位置

root@08d912ebf816:/usr# which python
/usr/local/bin/python

在 Unix 和 Linux 系統中,libbin 目錄的比較

1. bin 目錄

  • 用途binbinary 的縮寫,通常用來存放可執行文件。這些文件是可以直接運行的程序或腳本。
  • 位置:在不同的系統中,常見的 bin 目錄包括:
    • /bin:存放系統啟動和修復時需要的基本命令。
    • /usr/bin:存放大多數用戶應用程序的可執行文件。
    • /usr/local/bin:用來存放本地安裝的應用程序的可執行文件。

2. lib 目錄

  • 用途liblibrary 的縮寫,通常用來存放庫文件(libraries)。這些文件是用於支持可執行文件的共享代碼。它們通常不是直接運行的,而是被程序調用。
  • 位置:常見的 lib 目錄包括:
    • /lib:存放核心系統庫,這些庫通常在啟動時需要。
    • /usr/lib:存放用戶程序所需的庫。
    • /usr/local/lib:用於本地安裝的庫文件。

小整理:

  • bin 目錄:存放可執行文件,讓用戶可以直接運行。
  • lib 目錄:存放庫文件,為可執行文件提供支持和功能。

為何比對 GitHub 上的開源 LangChain 倉庫

- 獲取最新更新

開源庫可能經常更新,通過比對 GitHub 倉庫,你可以確保使用的是最新的功能和修復。

- 查看變更紀錄

通過查看提交歷史,你可以了解哪些改動可能影響到你使用的功能,幫助你在升級時做好準備。

- 提交問題或貢獻代碼

如果你發現 bug 或想要添加功能,比對源碼能幫助你更好地定位問題並提出改進建議。

- 比較本地安裝的 LangChain 套件版本

比較你本地安裝的 langchain-community 套件版本(如 0.0.33)和 GitHub 上開源版本的對應關係。

查看 GitHub 上的 Releases 或 Tags

在 GitHub 倉庫的主頁上,你可以找到 ReleasesTags 標籤,這裡會列出所有發佈的版本。

1. 點擊 Releases 頁面

在 Releases 頁面,你可以看到所有的版本號和相關的變更說明。

2. 查看 Tags 標籤

在 Tags 標籤下,你也能找到不同版本的標記。

也可以選擇某個版本號,並查看當時程式碼的變化

直接編輯本地 pip 安裝的庫的 .py 檔案是否生效

1. 直接編輯會生效

  • 立即生效
    你對 .py 檔案的任何修改會立即反映在你的 Python 環境中。當你下次導入該庫時,修改過的代碼會被執行。

2. 風險和注意事項

  • 不可預測的行為:如果你不熟悉該庫的內部邏輯,直接編輯可能會導致錯誤或不穩定的行為。
  • 未來更新問題:當你使用 pip install --upgradepip uninstall 重新安裝庫時,這些修改將會被覆蓋或丟失。
  • 無法跟踪修改:直接編輯後,這些變更不會記錄在版本控制系統中(如 Git),所以無法輕易追蹤或還原。

3. 建議的做法

如果你希望對某個庫進行持久的修改,這裡有幾個建議:

  • Fork 倉庫:如果該庫是開源的,你可以從 GitHub 上 fork 一份,然後在自己的版本中進行修改,這樣可以保留原始代碼的完整性。
  • 使用虛擬環境:在虛擬環境中進行測試和修改,可以防止對全局環境造成影響。
  • 記錄你的改動:無論是使用 Git 來記錄版本,還是做一些註釋,以便日後回顧。

總結

了解如何查看和比對本地 pip 檔案是 Python 開發中的一項重要技能。

透過這些步驟,你可以更好地理解你正在使用的庫,進而提升你的開發效率和能力。

希望這篇文章能幫助你在日常開發中更加得心應手!🐍✨

    喜歡 好崴寶 Weibert Weiberson 的文章嗎?在這裡留下你的評論!本留言區支援 Markdown 語法