Man*_*ro1 6 python google-translate pyinstaller
我正在尝试使用 PyInstaller 将我的 python 文件转换为可执行文件。该程序使用Google Cloud Translate API在语言之间翻译给定文本。python quicktrans.py在终端中运行时,程序运行良好。然后我运行pyinstaller quicktrans.py, SHIFT + 右键单击可执行文件所在的目录,并在终端中运行 .exe 文件。这是它吐出的回溯(注意这不是整个回溯,因为它有点冗长):
File "c:\users\kalab\realpython\quicktrans\google\cloud\connection.py", line 31, in <module>
get_distribution('google-cloud-core').version)
File "site-packages\pkg_resources\__init__.py", line 559, in get_distribution
File "site-packages\pkg_resources\__init__.py", line 433, in get_provider
File "site-packages\pkg_resources\__init__.py", line 970, in require
File "site-packages\pkg_resources\__init__.py", line 856, in resolve
pkg_resources.DistributionNotFound: The 'google-cloud-core' distribution was not found and is required by the application
Failed to execute script quicktrans
Run Code Online (Sandbox Code Playgroud)
我试过调查这个,并且出于某种原因它给了我一个类似 pip 的错误。我一直试图解决这个问题几个小时,但没有运气。注意:要安装其客户端库,根据文档,您必须运行pip install --upgrade google-cloud-translate
我想这可能有一些与此有关,因为最后一个应用程序我用处理Facebook的客户端模块和你只有做pip install facebook-sdk和做PyInstaller可执行没有问题跑了。
如果你想检查我的程序中使用的代码,它托管在我的 GitHub 上。
感谢任何人在这里帮助我!
这基本上是包构建名称问题。Pyinstaller 尝试导入
谷歌云
谷歌云包现在被称为
云
. 所以你需要为那个名字创建一个钩子文件
C:\Users\\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\PyInstaller\hooks\hook-gcloud.py
文件内容:
from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('gcloud')
Run Code Online (Sandbox Code Playgroud)
我个人的解决方案:
from pkg_resources import get_distribution从导入中删除对于包中的所有文件。