5
5

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 5 years have passed since last update.

Pythonによるスクレイピング&機械学習[開発テクニック]の備忘録(5章)

Last updated at Posted at 2017-01-01

5章

tensorflowのインストール直後から早速躓きました。
インストールできたかの確認(p204)で以下のコマンドを実行します。

root@19dc7f4125d1:~# python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'tensorflow'

tensorflowのモジュールが見つからないらしいです。
pip listで確認をしてみたらちゃんと「tensorflow (0.7.1)」が入っていました。

ところでpythonとpython3の起動方法が良くわかっていなかったのですが、pythonとpython3の起動方法では以下の様な違いがあります。

pythonで起動

root@19dc7f4125d1:/# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Python2.xが立ち上がります。

python3で起動

root@19dc7f4125d1:~# python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.

Python3.xが立ち上がります。

それではと思い、python3ではなく、pythonでtensorflowをimportしてみます。

>>> import tensorflow as tf
>>> sess = tf.Session()
>>> hello = tf.constant('Hello')
>>> sess.run(hello)
'Hello'

大丈夫です。importできました。
pythonでimportできてpython3でimportできないのはpathの問題でしょうか。
tensorflowのpathを確認してみます。

>>> import tensorflow
>>> print tensorflow.__file__
/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.pyc

やはり、tensowflowの実行モジュールはpython2.x下のパスにありました。
python3.xでもtensowflowが実行できるようにするためにはパスを設定すればOKです。

python3.xのパスをまず確認。

root@19dc7f4125d1:/# python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
>>>

ということで、以下のどこかに「/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.pyc」を見るようにすればいいですね。

  1. /usr/lib/python3.4
  2. /usr/lib/python3.4/plat-x86_64-linux-gnu
  3. /usr/lib/python3.4/lib-dynload
  4. /usr/local/lib/python3.4/dist-packages
  5. /usr/lib/python3/dist-packages

今回は5番の下に「/usr/local/lib/python3.4/dist-packages/custom.path」というファイルを作成し、そこに「/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.pyc」を記載しました。

これにてpython3でもtensorflowをimportできました。


作戦変更(pip3でtensorflowをインストール)

何度か使っている間にまた、python3でtensorflowのimportができなくなりました。
作戦変更して、tensorflowをインストールすることにしました。
何も解決していないですが、先に進めます。

Python3で使用したいので、まずpip3を使えるようにします。

pip3が利用できない状態で以下のコマンドを実行しても何も返ってきません。

which pip3

以下のコマンドでpip3を使えるようにします。

apt install python3-pip

以下コマンドでpip3が使えるか再確認。

root@5ca7beea435b:/c/Users/yuki/my_dir/wap_scraping/src/ch5# which pip3
/usr/bin/pip3

結果が返ってきました。
準備ができたので、パスを設定してtensorflowをインストールします。

$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp34-cp34m-linux_x86_64.whl
$ pip3 install --upgrade $TF_BINARY_URL

pip3 listを使って以下の結果がでます。

root@5ca7beea435b:/c/Users/yuki/my_dir/wap_scraping/src/ch5# pip3 list
chardet (2.2.1)
colorama (0.2.5)
html5lib (0.999)
numpy (1.11.3)
pip (1.5.4)
protobuf (3.1.0.post1)
pycurl (7.19.3)
pygobject (3.12.0)
python-apt (0.9.3.5ubuntu2)
requests (2.2.1)
setuptools (32.3.1)
six (1.10.0)
tensorflow (0.12.1)
unattended-upgrades (0.1)
urllib3 (1.7.1)
wheel (0.29.0)

calc1.pyも問題なく実行できました。

なかなか本の通り進まないですね。。

参考

[title]http://pcl.solima.net/pyblog/archives/57
[title]https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?