python 命名空间冲突_通过修改命名空间绕过pb冲突

当服务框架依赖的PB与TensorFlow的PB发生冲突时,可以通过修改命名空间来避免。本文提供了一个rename_namespace.sh脚本来批量替换冲突的命名空间,并详细列出了一系列针对protobuf及tensorflow目录的改名操作。
摘要由CSDN通过智能技术生成

背景

在实际工作当中,很多服务框架本身会依赖pb,但是和tf的pb会发生冲突[通常是因为pb比较老或者版本有冲突导致],所以本文介绍如何通过修改名空间的方式来绕过pb冲突。

修改名空间&编译pb

修改名空间的脚本rename_namespace.sh

grep -rl "\" ./protobuf | grep -v Binary | xargs sed -i "s/\/new_namespace/g"

grep -rl "protobuf_google_2fprotobuf_2f" ./protobuf | grep -v Binary | xargs sed -i "s/protobuf_google_2fprotobuf_2f/protobuf_new_namespace_2fprotobuf_2f/g"

sed -i "s/m\/new_namespace/m\/google/g" ./protobuf/autogen.sh

mv protobuf/python/google protobuf/python/new_namespace

mv protobuf/python/compatibility_tests/v2.5.0/tests/google protobuf/python/compatibility_tests/v2.5.0/tests/new_namespace

mv protobuf/python/compatibility_tests/v2.5.0/protos/python/google protobuf/python/compatibility_tests/v2.5.0/protos/python/new_namespace

mv protobuf/python/compatibility_tests/v2.5.0/protos/src/proto/google protobuf/python/compatibility_tests/v2.5.0/protos/src/proto/new_namespace

mv protobuf/src/google protobuf/src/new_namespace

mv protobuf/ruby/src/main/java/google protobuf/ruby/src/main/java/new_namespace

mv protobuf/ruby/src/main/java/com/google protobuf/ruby/src/main/java/com/new_namespace

mv protobuf/ruby/lib/google protobuf/ruby/lib/new_namespace

mv protobuf/ruby/ext/google protobuf/ruby/ext/new_namespace

mv protobuf/javanano/src/test/java/com/google protobuf/javanano/src/test/java/com/new_namespace

mv protobuf/javanano/src/main/java/com/google protobuf/javanano/src/main/java/com/new_namespace

mv protobuf/csharp/compatibility_tests/v3.0.0/protos/src/google protobuf/csharp/compatibility_tests/v3.0.0/protos/src/new_namespace

mv protobuf/php/ext/google protobuf/php/ext/new_namespace

mv protobuf/objectivec/google protobuf/objectivec/new_namespace

mv protobuf/java/util/src/test/proto/com/google protobuf/java/util/src/test/proto/com/new_namespace

mv protobuf/java/util/src/test/java/com/google protobuf/java/util/src/test/java/com/new_namespace

mv protobuf/java/util/src/main/java/com/google protobuf/java/util/src/main/java/com/new_namespace

mv protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/new_namespace

mv protobuf/java/compatibility_tests/v2.5.0/more_protos/src/proto/google protobuf/java/compatibility_tests/v2.5.0/more_protos/src/proto/new_namespace

mv protobuf/java/compatibility_tests/v2.5.0/more_protos/src/proto/com/google protobuf/java/compatibility_tests/v2.5.0/more_protos/src/proto/com/new_namespace

mv protobuf/java/compatibility_tests/v2.5.0/protos/src/proto/google protobuf/java/compatibility_tests/v2.5.0/protos/src/proto/new_namespace

mv protobuf/java/compatibility_tests/v2.5.0/protos/src/proto/com/google protobuf/java/compatibility_tests/v2.5.0/protos/src/proto/com/new_namespace

mv protobuf/java/core/src/test/proto/com/google protobuf/java/core/src/test/proto/com/new_namespace

mv protobuf/java/core/src/test/java/com/google protobuf/java/core/src/test/java/com/new_namespace

mv protobuf/java/core/src/main/java/com/google protobuf/java/core/src/main/java/com/new_namespace

修改tensorflow里面的命名空间

grep -rl "\" ./tensorflow/core | grep -v Binary | xargs sed -i "s/\/new_namespace/g"

grep -rl "\" ./tensorflow/contrib/decision_trees | grep -v Binary | xargs sed -i "s/\/new_namespace/g"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值