You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Pip安装GitHub仓库时缺失文件的问题咨询

Pip安装GitHub仓库时缺失文件的问题咨询

这确实是个挺闹心的小细节——我之前帮朋友排查过类似的情况,很多GitHub仓库在打包配置上会漏掉这类非代码的辅助资源,比如你碰到的这个vocab压缩包,就属于没被加入打包列表的文件,所以用pip直接安装时只会把Python代码拉下来,漏掉了它。

咱们来拆解几个适配你需求的解决方案,毕竟谁也不想自己的目录被一堆没用到的外部模块乱占不是:

方案一:临时自动化补全文件(用完即走,不留痕迹)

你已经手动复制过一次了,其实可以写个简单的shell脚本(Windows的话用批处理)把这个流程自动化,省得每次手动操作:

# 临时克隆目标仓库到临时文件夹(加--depth 1只拉最新版本,省空间)
git clone --depth 1 <该仓库的GitHub地址> temp_perception
# 把缺失的压缩包复制到pip安装后的包目录里(记得替换成你本地的实际路径,比如Python的site-packages下的core/vision_encoder文件夹)
cp temp_perception/core/vision_encoder/bpe_simple_vocab_16e6.txt.gz /你的Python安装路径/site-packages/core/vision_encoder/
# 立刻删掉临时文件夹,完全不会留下多余文件
rm -rf temp_perception

这个方法跑完就清,绝对不会乱占你的项目目录。

方案二:可编辑安装(兼顾完整资源与整洁)

如果能接受在虚拟环境里临时存个精简的仓库副本,可编辑安装是个更省心的选择:

pip install -e git+<该仓库的GitHub地址>#egg=perception_models

这种方式会把仓库克隆到你虚拟环境的src目录下,然后只是给Python做个“快捷方式”,所有资源文件都会完整保留,完全不会缺东西。等之后你不需要这个包了,直接pip uninstall perception_models,再删掉src里的对应目录就行,一点也不影响你的主项目。

方案三:一劳永逸(适合愿意小折腾的情况)

这个问题本质是仓库本身的打包配置没做好——它的setup.py(或者pyproject.toml)里没把这个压缩包加入到要打包的资源列表里。你可以fork这个仓库,然后修改setup.py,加入这段配置:

setup(
    # 保留原有所有配置,只加下面这部分
    package_data={
        'core.vision_encoder': ['bpe_simple_vocab_16e6.txt.gz'],
    },
    include_package_data=True,
)

之后用pip安装你自己fork后的仓库,以后再装就再也不会缺文件了,要是你愿意,还可以给原仓库提个PR,帮其他碰到同样问题的人解决麻烦~

至于README里推荐用git clone,就是因为官方也知道自己的打包配置有疏漏,所以建议大家完整克隆仓库来确保所有资源都能拿到。你不想乱占目录的需求完全合理,上面的方案一或二都能完美满足,不用一直留着整个仓库在本地~

火山引擎 最新活动