为了避免项目之间的环境冲突,pycharm工具可以为你的项目创建一个虚拟环境,这个工具非常实用,不过在一些设置方面,有一些地方需要注意。
本人在调用google的API的过程中,就碰到了如下的问题,在运行程序的时候,报如下错误
Traceback (most recent call last):
File “D:/MyPythonWorkspaces/projects/Project_learning/transcribe_streaming_mic.py”, line 194, in <module>
main()
File “D:/MyPythonWorkspaces/projects/Project_learning/transcribe_streaming_mic.py”, line 173, in main
client = speech.SpeechClient()
File “C:\Users\pc\AppData\Local\Programs\Python\Python36\lib\site-packages\google\cloud\speech_v1\gapic\speech_client.py”, line 144, in __init__
address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials
File “C:\Users\pc\AppData\Local\Programs\Python\Python36\lib\site-packages\google\cloud\speech_v1\gapic\transports\speech_grpc_transport.py”, line 61, in __init__
channel = self.create_channel(address=address, credentials=credentials)
File “C:\Users\pc\AppData\Local\Programs\Python\Python36\lib\site-packages\google\cloud\speech_v1\gapic\transports\speech_grpc_transport.py”, line 92, in create_channel
address, credentials=credentials, scopes=cls._OAUTH_SCOPES
File “C:\Users\pc\AppData\Local\Programs\Python\Python36\lib\site-packages\google\api_core\grpc_helpers.py”, line 177, in create_channel
credentials, _ = google.auth.default(scopes=scopes)
File “C:\Users\pc\AppData\Local\Programs\Python\Python36\lib\site-packages\google\auth\_default.py”, line 317, in default
raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started
其实这个错误很简单,无非是申请密钥文件(如何申请密钥文件,本文就不作解释了),然后再配置环境变量GOOGLE_APPLICATION_CREDENTIALS指向密钥文件的路径,因此,我在cmd窗口中,进入虚拟环境并配置了环境变量:
D:\...\venv\Scripts>activate ## 进入虚拟环境所在目录,运行Scriptes目录下的activate进入虚拟环境
(venv) D:\...\venv\Scripts> ## 在提示符的最前面出现(venv),这表明已经进入了venv虚拟环境
(venv) D:\...\venv\Scripts>set GOOGLE_APPLICATION_CREDENTIALS=“D:\MyWorkspace\Google API\mykey.json"
## 为环境变量GOOGLE_APPLICATION_CREDENTIALS设置密钥路径
##环境变量设置成功
密钥设置成功后,我再次回到pycharm中运行那个程序,结果仍然报出同样的错误。
又考虑可能是因为不在同一个会话当中,所以环境变量在程序运行时没有生效,可能需要在pycharm的Terminal中进行环境变量的设置才行。所以进入pycharm,做了同样的设置。
结果发现,运行程序仍然报出同样的错误。
这下有点儿懵逼了,在程序中加入了如下两行代码,想看看究竟
import os
print('Credendtials from environ: {}'.format(os.environ.get('GOOGLE_APPLICATION_CREDENTIALS')))
结果发现无论我采用上述哪种方式设置这个环境变量,打印出来的结果都是:
Credendtials from environ: None
但是我坚持认为pycharm这么牛逼的集成开发环境,不可能搞不定这个事情,否则还怎么混啊?借着这股牛筋,开始了我的搜索菜单的历程,结果,结果,让我找到了这个菜单,(*^__^*) 嘻嘻……
Run>Edit Configurations ,进入界面后,找到Environment –> Environment variables 没错,就是他了,在这个设置中增加一条GOOGLE_APPLICATION_CREDENTIALS的设置。终于大功告成。
写这篇博文,除了让自己记忆深刻一点儿之外,希望也能让其他同学少走些弯路。希望能对大家有所帮助。
今天的文章在pycharm虚拟环境设置环境变量的查错和解决经历分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/26333.html