

ターミナルで python ファイルを実行したとき、以下のエラーがでます。

`python パス/ファイル名.py`

[code]

    Traceback (most recent call last):
      File "/Users/xxx/Desktop/Python/test.py", line 5, in <module>
        import pandas as pd
      File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/__init__.py", line 13
        missing_dependencies.append(f"{dependency}: {e}")
                                                       ^
    SyntaxError: invalid syntax
    
[/code]

なぜ一度も中身をいじっていない `pandas/init.py` に対して SyntaxError なんでしょうか。  
さらにわからないのが、Jupyter Notebook で `import pandas` をやると正常に動きます。  
Jupyter Notebook のモジュールのパスも Python3 になっています。  
ご回答よろしくお願いいたします。

**基本情報**

OS：Mac  
python3.8

**エラーが起こるまでの過程**

Anaconda で python 環境をインストール→Jupyter notebook で !pip ができなかったので、公式サイトから
Python3.8 をインストール、ターミナルから pip で pandas, jupyter をインストール→現状

2020/06/07 追記

[code]

    $python --version
    Python 2.7.16
    $python -c 'import sys; print(sys.path)'
    ['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC']
    
[/code]


CC BY-SA 4.0
2020-06-06T14:34:15.010
67370
2020-06-06T16:24:37.223
2020-06-06T15:50:02.570
40521
40521
question
python pandas
import pandas で、pandas/init.py に対して SyntaxError がでます。


### 解決法

`python --version` がシステムに元からインストールされていた Python 2.x を指しています。おそらく `python3`
コマンドが新しくインストールされたものを指しているのではないでしょうか。

なので、`python3 〈ファイルパス〉` のように実行してみてください。`pip` もおそらく `pip3` です。

### python コマンドが Python 3 系を指すようにしたい

もし `python` と打つだけで Python 3
系が起動されるようにしたければ、そのようにシェルコマンドのエイリアスを作れば良いです（`python` コマンド自体が Python 3
系を指すようにしてしまうと、Python 2 系を使うことを想定しているものが壊れる可能性があるのでオススメできません。自分のシェルでだけ Python 3
系が使われるように設定します）。

つまり、お使いのシェルにあわせて `~/.bash_profile` や `~/.zshenv` などに

[code]

    alias python='python'
    
[/code]

と書いてシェルを再起動すると良いです。

ただおそらく、その内色々なライブラリの依存関係がややこしくなっていくにつれ、この方法ではなくて Python
の仮想環境を使いたくなってくるのではないかなあと個人的には思います（ここは趣味嗜好の分かれるところです）。

### 補足：SyntaxError の理由

ちなみに `missing_dependencies.append(f"{dependency}: {e}")` が SyntaxError
になるのは、`f"ほにゃらら"` という構文（f文字列）が Python 3.6 から追加された新しいものだからです。このエラーを見て、おそらく
`python` コマンドが Mac にプリインストールされていた Python 2
系を指してしまっているのだろうなあと推測し、質問者さんにバージョンの確認をお願いしました。


CC BY-SA 4.0
2020-06-06T16:08:07.507
67373
2020-06-06T16:24:37.223
2020-06-06T16:24:37.223
19110
19110
67370
answer