Python實(shí)現(xiàn)類庫(kù)安裝指定目錄的示例詳解
示例代碼:
TARGET_DIR="/gemine/code/python311"
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.0.post1/flash_attn-2.7.0.post1+cu12torch2.4cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
pip install flash_attn-2.6.3+cu118torch2.4cxx11abiFALSE-cp311-cp311-linux_x86_64.whl \
--target=$TARGET_DIR \
--no-deps \
--no-build-isolation
將 TARGET_DIR="/gemine/code/python311" 添加到 Python 類庫(kù)路徑,有以下幾種方法:
方法 1:臨時(shí)添加(單次運(yùn)行)
import sys sys.path.insert(0, '/gemine/code/python311') # 現(xiàn)在可以導(dǎo)入該目錄下的包 import flash_attn
方法 2:永久添加(推薦)
2.1 添加到環(huán)境變量(~/.bashrc)
# 編輯 bashrc echo 'export PYTHONPATH="/gemine/code/python311:$PYTHONPATH"' >> ~/.bashrc # 立即生效 source ~/.bashrc
2.2 添加到 Python 啟動(dòng)文件
# 找到 Python 站點(diǎn)包目錄 python -m site --user-site # 創(chuàng)建 .pth 文件(假設(shè)輸出是 /home/user/.local/lib/python3.11/site-packages) echo "/gemine/code/python311" > /home/user/.local/lib/python3.11/site-packages/custom_path.pth
2.3 添加到 conda 環(huán)境(如果用 conda)
# 找到當(dāng)前環(huán)境的 site-packages python -c "import site; print(site.getsitepackages()[0])" # 創(chuàng)建 .pth 文件 echo "/gemine/code/python311" > $(python -c "import site; print(site.getsitepackages()[0])")/custom_lib.pth
方法 3:Python 腳本中自動(dòng)處理
import sys
import os
# 自動(dòng)添加自定義庫(kù)路徑
TARGET_DIR = '/gemine/code/python311'
if TARGET_DIR not in sys.path:
sys.path.insert(0, TARGET_DIR)
print(f"已添加 {TARGET_DIR} 到 Python 路徑")
# 驗(yàn)證
try:
import flash_attn
print(f"flash-attn 加載成功,版本: {flash_attn.__version__}")
except ImportError as e:
print(f"加載失敗: {e}")
方法 4:使用 .pth 文件(最干凈)
# 一鍵添加(通用方法)
python << 'EOF'
import site
import os
target_dir = "/gemine/code/python311"
site_packages = site.getsitepackages()[0]
pth_file = os.path.join(site_packages, "custom_lib.pth")
# 寫入 .pth 文件
with open(pth_file, 'w') as f:
f.write(target_dir + '\n')
print(f"已創(chuàng)建: {pth_file}")
print(f"內(nèi)容: {target_dir}")
EOF
驗(yàn)證是否生效
# 檢查 Python 路徑
python -c "import sys; print('/gemine/code/python311' in sys.path)"
# 檢查能否導(dǎo)入 flash-attn
python -c "import flash_attn; print(flash_attn.__version__)"
推薦方案
| 場(chǎng)景 | 推薦方法 |
|---|---|
| 臨時(shí)測(cè)試 | 方法 1(sys.path.insert) |
| 個(gè)人長(zhǎng)期使用 | 方法 2.1(~/.bashrc) |
| 項(xiàng)目獨(dú)立配置 | 方法 2.2(.pth 文件) |
| 腳本自動(dòng)化 | 方法 3(代碼中自動(dòng)添加) |
最推薦的是方法 2.2(.pth 文件),因?yàn)樗?/p>
- 永久生效
- 不影響系統(tǒng)環(huán)境變量
- 只對(duì) Python 生效,不干擾其他程序
需要我?guī)湍銓憘€(gè)一鍵配置腳本嗎?
到此這篇關(guān)于Python實(shí)現(xiàn)類庫(kù)安裝指定目錄的示例詳解的文章就介紹到這了,更多相關(guān)Python類庫(kù)安裝指定目錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python容器類型轉(zhuǎn)換的3種方法實(shí)例
使用Python我們可以輕松地將數(shù)據(jù)轉(zhuǎn)換成不同的類型,下面這篇文章主要給大家介紹了關(guān)于Python容器類型轉(zhuǎn)換的3種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Pipenv輕量級(jí)虛擬環(huán)境管理工具使用指南
這篇文章主要為大家介紹了Pipenv輕量級(jí)虛擬環(huán)境管理工具使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Python+Selenium+phantomjs實(shí)現(xiàn)網(wǎng)頁模擬登錄和截圖功能(windows環(huán)境)
Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語言,它可以運(yùn)行在Windows、Mac和各種Linux/Unix系統(tǒng)上。這篇文章主要介紹了Python+Selenium+phantomjs實(shí)現(xiàn)網(wǎng)頁模擬登錄和截圖功能,需要的朋友可以參考下2019-12-12
詳解python的四種內(nèi)置數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了python的四種內(nèi)置數(shù)據(jù)結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
Python實(shí)現(xiàn)對(duì)大量表格文件數(shù)據(jù)處理的方法詳解
這篇文章主要為大家介紹了如何基于Python語言實(shí)現(xiàn)對(duì)大量表格文件加以數(shù)據(jù)截取、逐行求差、跨文件合并等處理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
pytorch 實(shí)現(xiàn)計(jì)算 kl散度 F.kl_div()
這篇文章主要介紹了pytorch 實(shí)現(xiàn)計(jì)算 kl散度 F.kl_div(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
python錯(cuò)誤:AttributeError: ''module'' object has no attribute
這篇文章主要介紹了python錯(cuò)誤:AttributeError: 'module' object has no attribute 'setdefaultencoding'問題的解決方法,需要的朋友可以參考下2014-08-08
python logging 重復(fù)寫日志問題解決辦法詳解
這篇文章主要介紹了python logging 重復(fù)寫日志問題解決辦法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

