pyinstaller 没有名为 grpc 的模块



我的目标是使用 pyinstaller 构建可执行文件。我正在尝试构建的python脚本导入grpc。下面是一个示例,说明了名为 hello.py 的问题。

  import grpc
  if __name__ == '__main__':
     print "hello world"

我做pyinstaller hello.py,这会产生预期的dist目录。然后我像./dist/hello/hello一样运行它,出现错误ImportError: No module named grpc.

所以后来我用pip install grpc安装了 grpc。当我重建工件时,我现在收到错误Import grpc:No module named gevent.socket

在线阅读表明,要安装的正确项目实际上是grpcio和grpcio工具。所以我尝试了pip uninstall grpc pip install grpciopip install grpcio-tools.这样做并重建工件给了我错误ImportError: No module named pkg_resources.尝试pip install pkg_resources会给出错误:Could not find a version that satisfies the requirement pkg_resources

安装所有grpcio grpcio-toolsgrpc都会给出相同的错误:Import grpc:No module named gevent.socket

这似乎应该是一项非常简单的任务。我只想使用 pyinstaller 构建一个依赖于 grpc 的工件,我该怎么做?

我遇到了同样的问题。我提到了这个文档:gRPC

根据文档,首先将您的 pip 升级到版本 9 或更高版本。

然后使用以下命令:

$ python -m pip install grpcio
$ python -m pip install grpcio-tools

它对我有用!

我正在使用grpc做一个PyInstaller/cx_freeze可分发的python应用程序。

您可以尝试添加--hidden-import=pkg_resources,看看会发生什么吗?

这为我解决了它

最新更新