LoginSignup
2
3

More than 5 years have passed since last update.

Python Chainerを初めた時の問題解決

Posted at

本来Chainerは pip install chainer のコマンドのみで簡単に始められるはずなのですが、
初めで躓いたのでその原因を紹介します。

問題点

/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 /Users/ユーザー名/PycharmProjects/Chainer/test.py
Traceback (most recent call last):
  File "/Users/ユーザー名/PycharmProjects/Chainer/test.py", line 2, in <module>
    import chainer
ImportError: No module named chainer

Process finished with exit code 1
test.py
import numpy as np
import chainer

x1 = chainer.Variable(np.array([1]).astype(np.float32))
x2 = chainer.Variable(np.array([2]).astype(np.float32))
x3 = chainer.Variable(np.array([3]).astype(np.float32))

z = (x1 - 2 * x2 - 1)**2 + (x2 * x3 - 1)**2 + 1
print(z)

python version 3.6.3
pip install chainer 済み

原因1つ目

Pythonを参照するPATHが間違っていた。

>>> pyenv versions
  system
* 3.6.3 (set by /user/local/...)  
>>> python -V
Python 2.7.5

pyenvでもデフォルトのPython2.x系ではなく、3.6.3を指定されていますが、
括弧の中の参照しているpathに問題がありました。 (誤っていた頃のpathを忘れてしまいましたが、 .pyenv を参照していなかったら問題です。)

解決策

>>> vim .zshrc

下記3行を追加
export PYENV_ROOT=“$HOME/.pyenv”
export PATH=“$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init -)”

自分の環境のshellがzeshなので、.zshrc を編集します。
$HOME pathの直下に .pyenv を指定してください。
Pythonのバージョンは.pyenv下で管理しているからです。

>>> pyenv versions
  system
* 3.6.3 (set by /Users/ユーザー名/.pyenv/version)
>>> python -V
Python 3.6.3

正しく.pyenv下のpathを参照されていて、これで問題なく実行出来る。

しかし上記のエラーコードが消えない…

原因2つ目

問題の1行目

/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 

ここのpathが間違っている。すなわち自分の今使用している統合開発環境PyCharmの参照しているpythonのpathが誤っている。

解決策

PyCharm > Preferences(⌘,) > Project Interpreter
参照しているpathを .pyenv 下のpythonに指定してあげる。
スクリーンショット 2017-10-24 9.43.25.png

これで上記のエラーが消え問題なく実行できた!!

まとめ

今回の問題を経て、Pythonのインストール自体は簡単であるが、
PATHの指定などどこにインストールしているのかや、pyenvの役割等を理解せずに進めてしまうと問題に陥ってしまうため、
プログラミング初心者には少々難しいのかなと感じました。

2
3
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
2
3