immersed-in-the-deep-sea

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

背景

  首先这是巨坑,pip install grpcio和pip install grpcio_tools的方式,因为公司的库里没有,且申请入库复杂,因此只能通过源码构建。

思路  

  第一步,应该是要去找grpc的源码,公司是有源码的,也可以在PIPY上找,比如我需要1.41.1的grpc版本,就如下地址 https://pypi.org/project/grpcio/1.41.1/#files,找grpcio-1.41.1.tar.gz 这个包下载解压。

  第二步,如果你直接执行python setup.py install,会出现非常多的报错。本篇帖子就是专门解决这个第二步的问题。

问题出现原因

  首先,grpc跟很多包不一样,他底层依赖C,源码构建的时候是会带着一些C文件进行编译的,也需要C的编译器,比如CMake这种。

  其次下载官方的包里面,会有一个文件夹third_party,里面会有很多空文件夹,都是没有东西的,巨坑。

环境准备

  我使用的是CMake1.8以上版本就行,然后vs2017。

  首先包下面直接运行python setup.py install,会有缺XXX包的报错,都需要根据这个帖子 https://www.cnblogs.com/judes/p/15437731.html 去对应版本的github上下载包并安装,一个一个下,也就十几个。

  解决完这个以后,会有什么缺C++的,缺头文件的都是没有C++的环境,需要你安装下载Vs2017,并把安装组件Cmake那个勾上,配置一份环境变量,我自己还本地去官网装了一份Cmake,也配个环境变量。有报啥错就去搜一下,配置一下就行(可能会很多)。

  然后在grpc的文件夹新建一个run.bat执行如下语句(我之前用CMake脚手架配置试了很多都不行,不知道为什么)

复制代码
cd cmake
mkdir build
cd build
cmake ../../ -DgRPC_INSTALL=ON\
             -DgRPC_CARES_PROVIDER=package \
             -DgRPC_PROTOBUF_PROVIDER=package \
             -DgRPC_SSL_PROVIDER=package      \
             -DgRPC_ZLIB_PROVIDER=package     \
             -DgRPC_RE2_PROVIDER=package      \
             -DgRPC_ABSL_PROVIDER=package     \
             -DBUILD_SHARED_LIBS=ON \
             -DCMAKE_VERBOSE_MAKEFILE=ON
复制代码

  这里我跟他们不一样,他们使用的指定vs版本的我会报错,但这个指令执行完确实出sln文件了,我也不知道具体原因,懂的可以告诉我一下。然后同这个帖子的后续 https://www.cnblogs.com/judes/p/15437731.html

  注意生成以后的文件的include部分,要去grpc包下的进行覆盖,同样文件选择跳过。

  再执行一遍python setup.py install,这个编译很长时间可能有8分钟。

  会出个什么.egg的python蛋,再pip show grpcio,发现有就说明OK啦

注意

  第三方组件我只装了perl,装一下并配置环境变量即可,并没有用到什么go之类的,可能他们很多是grpc的版本不一样,或许是python构建不需要其他的,我不太确定

posted on   沉浸深海  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
 
点击右上角即可分享
微信分享提示