3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonでGoogleスプレッドシート操作時の初歩的エラー

Posted at

前置き

ProgateのPythonコースを完了し、いくつかの書籍を学んだ程度の駆け出しです。
原因が分かった時、初歩的なことだったのですが、意外と国内外でも検索すると質問されている方が多く、でも初歩的だからか回答得られずに迷っている方がいたので、解決方法を残しておきます。M1 Macbook Proで同エラーに悩まされ、原因がわからずWindowsで調べましたが、Macでも同じ方法で解決可能です。

開発環境

Windows10
Visual Studio Code
Python v3.8.5
Conda v4.9.2

json keyfileが見つからないエラー

下記のエラーはファイル、またはディレクトリが見つからないというエラーです。
エラーの意味はわかるんだけど、なんで見つからないの・・・という気持ちで調べていました。

service_account.py", line 219, in from_json_keyfile_name
    with open(filename, 'r') as file_obj:
FileNotFoundError: [Errno 2] No such file or directory: '~~~~~~.json'

頭を抱えながらTerminalをぼーっと見ていたら、解決しました。
condaでmyenv385という名前の環境を作っていますが、pyファイルはDドライブのPythonフォルダの中に、内容ごとにフォルダを分けてアウトプットしています。

Dドライブ
└ Python
├ gspread
├ googlecredential.json
├ spreadtest.py
├ test
├ ...

VSCのワークスペースをDドライブのPythonに指定している為か、conda activate myenv385を実行すると下記のようになります。

(myenv385) D:\Python>

spreadtest.pyをVSCのターミナルでPythonファイルを実行を行った際に発生しました。
つまりどういうことかというと、D:\Pythonにはgooglecredential.jsonが見つからないということなんですね。

下記コマンドをターミナルに入力し、ディレクトリを移動しましょう。

(myenv385) D:\Python>cd gspread

# 下記のように移動できればOK
(myenv385) D:\Python\gspread>

この状態で再度VSCのPythonファイルを実行すればエラーが出ずにpyファイルが正しく実行されます。

結論

実行時の仕組みを勘違いしていることが原因でした。
実行させるpyファイルから見たときに、相対パスで同じディレクトリに存在していれば問題ないと思っていたこと。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?