pip install --target 是最直接但需手动补路径的方案,它将包解压到指定绝对路径,不注册进 pip list,Python 也不自动识别,适合离线部署或嵌入式场景;路径须预先存在且有写权限,含空格或中文时需用引号包裹,安装后需手动添加路径到 sys.path 或 PYTHONPATH 才能 import。

pip install --target 是最直接但需手动补路径的方案
它把包解压到你给的绝对路径,不注册进 pip list 或 pip show,Python 运行时也不会自动识别。适合离线部署、嵌入式打包或临时测试。
-
--target路径必须提前存在,且有写权限;含空格或中文时,整个路径要用引号包裹,例如:pip install --target "/my custom/libs" requests - 安装后,
import requests会报ModuleNotFoundError,除非你提前把该路径加进sys.path,比如:import sys; sys.path.insert(0, "/my custom/libs") - 该目录下只有模块文件夹(如
requests/)和.dist-info/,没有.pth或.egg-link,所以不会触发 site-packages 的自动扫描机制
不要用 --prefix 试图“换默认安装位置”
对 wheel 包基本无效。你执行 pip install --prefix /opt/mypkgs requests,requests 依然落在默认 site-packages 里。
从QuickView趋势笔记生成韩语AI播客包,含双人主持脚本(Callie×Nick)、Gemini多说话人TTS音频、字幕时间轴与渲染修正、缩略图+MP4包装及YouTube标题/描述输出。支持完整版(15~20分钟)和压缩版(5~7分钟)。
- 真正能触发
--prefix的组合极其脆弱:要同时加--no-deps --no-compile --force-reinstall --ignore-installed,但极易破坏依赖图,不建议日常使用 - 它原本是为源码安装(
setup.py install)或 deb 布局设计的,pip 当前版本(24.x+)在普通 install 场景下会忽略它 - 如果你真需要类 Unix 目录结构(
lib/python3.x/site-packages、bin/),应该用venv+pip install -t,而不是硬拗--prefix
让 Python 永久识别自定义目录只有两种可靠方式
改 sys.path 是运行时临时行为,每次启动脚本都得重复写。长期生效必须靠环境变量或 .pth 文件。
- 设环境变量
PYTHONPATH=/my/custom/libs(Linux/macOS)或set PYTHONPATH=C:\my\custom\libs(Windows),所有 Python 进程都会加载该路径下的模块 - 或者,在已有被 Python 自动识别的
site-packages目录里(比如~/.local/lib/python3.10/site-packages),新建一个mylibs.pth文件,内容只写一行:/my/custom/libs—— 这比改环境变量更轻量,也避免污染全局 - 注意:
.pth文件只在 Python 启动时读一次,改完要重启解释器;路径必须是绝对路径,不能用~或环境变量展开
修改 site.py 或 pip.ini 属于高风险操作
虽然能强行改变 USER_SITE 或全局 target,但容易导致 pip 和 Python 版本错配、多环境冲突,尤其在 conda 或 pyenv 管理的环境中极易出问题。
- 改
site.py后,python -m site显示路径变了,但已安装的包不会自动迁移,pip list仍查不到新位置的包 -
pip.ini(Windows)或pip.conf(Linux/macOS)里设target=...会覆盖所有pip install命令,包括你没意识到的依赖传递安装,可能意外污染非预期目录 - 真正干净的做法是:用
python -m venv .venv创建隔离环境,再在激活后用pip install -t ./libs—— 这样路径可控、依赖独立、可复现
--target 安装完就能 import,结果卡在 ModuleNotFoundError;或者改了 site.py,发现 pip install --user 行为异常。这些都不是 bug,而是 pip 的设计逻辑使然——它从不承诺“指定路径 = 自动可用”,只是给你一个存放文件的地方。

















