示例代码:
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 类库路径,有以下几种方法:
方法 1:临时添加(单次运行)
import sys sys.path.insert(0, '/gemine/code/python311') # 现在可以导入该目录下的包 import flash_attn
方法 2:永久添加(推荐)
2.1 添加到环境变量(~/.bashrc)
# 编辑 bashrc echo 'export pythonpath="/gemine/code/python311:$pythonpath"' >> ~/.bashrc # 立即生效 source ~/.bashrc
2.2 添加到 python 启动文件
# 找到 python 站点包目录 python -m site --user-site # 创建 .pth 文件(假设输出是 /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 环境(如果用 conda)
# 找到当前环境的 site-packages python -c "import site; print(site.getsitepackages()[0])" # 创建 .pth 文件 echo "/gemine/code/python311" > $(python -c "import site; print(site.getsitepackages()[0])")/custom_lib.pth
方法 3:python 脚本中自动处理
import sys
import os
# 自动添加自定义库路径
target_dir = '/gemine/code/python311'
if target_dir not in sys.path:
sys.path.insert(0, target_dir)
print(f"已添加 {target_dir} 到 python 路径")
# 验证
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"已创建: {pth_file}")
print(f"内容: {target_dir}")
eof
验证是否生效
# 检查 python 路径
python -c "import sys; print('/gemine/code/python311' in sys.path)"
# 检查能否导入 flash-attn
python -c "import flash_attn; print(flash_attn.__version__)"
推荐方案
| 场景 | 推荐方法 |
|---|---|
| 临时测试 | 方法 1(sys.path.insert) |
| 个人长期使用 | 方法 2.1(~/.bashrc) |
| 项目独立配置 | 方法 2.2(.pth 文件) |
| 脚本自动化 | 方法 3(代码中自动添加) |
最推荐的是方法 2.2(.pth 文件),因为它:
- 永久生效
- 不影响系统环境变量
- 只对 python 生效,不干扰其他程序
需要我帮你写个一键配置脚本吗?
到此这篇关于python实现类库安装指定目录的示例详解的文章就介绍到这了,更多相关python类库安装指定目录内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论