如何在Pipenv虚拟环境中添加非pip依赖ffmpeg?
解决Pipenv虚拟环境中ffmpeg找不到的问题
方案1:让虚拟环境识别系统安装的ffmpeg
Pipenv的隔离环境默认可能没包含系统ffmpeg的路径,你可以通过环境变量让它能找到:
- 先查系统ffmpeg的路径:执行
which ffmpeg,得到比如/usr/local/bin/ffmpeg - 临时解决方案:运行代码时带上PATH设置
export PATH="/usr/local/bin:$PATH" && pipenv run python 你的脚本.py - 永久解决方案:在项目根目录新建
.env文件,写入以下内容(替换成你查到的ffmpeg路径所在目录):
之后用PATH="/usr/local/bin:$PATH"pipenv run启动脚本时,会自动加载这个环境变量
方案2:给虚拟环境的bin目录加ffmpeg软链接
直接把系统的ffmpeg链接到虚拟环境的可执行目录下:
- 先获取虚拟环境路径:执行
pipenv --venv,得到类似/Users/xxx/.local/share/virtualenvs/项目名-xxxxxx的路径 - 创建软链接:
这样autosub在虚拟环境中执行时,就能直接找到bin目录下的ffmpeg了ln -s $(which ffmpeg) $(pipenv --venv)/bin/ffmpeg
方案3:改用Python封装的ffmpeg库(无需系统命令)
如果可以调整代码,用纯Python的ffmpeg-python替代系统命令行工具:
- 安装依赖:
pipenv install ffmpeg-python - 修改代码逻辑,用该库的API处理音频,避免直接调用
autosub时依赖系统ffmpeg,完全在虚拟环境内解决依赖问题
内容的提问来源于stack exchange,提问作者Elias
相关产品推荐
相关产品推荐

