bash on windows で anaconda3 をインストールして import matplotlib.pyplot するとエラーになる
【症状】
bash on windows で anaconda3 をインストールして matplotlib のデモファイル dete_demo.py を走らせるとエラーが出ます。
【行った手順】
● lxrun /uninstall , lxrun /install
● bash Anaconda3-4.2.0-Linux-x86_64.sh
● python -V # Python 3.5.2 :: Anaconda 4.2.0 (64-bit)
● python date_demo.py ## 別記エラー1
【行った対応】
No module named 'PyQt4' とあったので PyQt4 をインストールしなくてはならないのか??
● conda list | grep pyqt ## pyqt 5.6.0 py35_0
● conda list | grep PyQt4 ## なし
● conda search PyQt4 ## なし
● pip search PyQt4 ## PyQt4 (4.11.4) がlist内にあった
● pip install PyQt4 ## 別記エラー2
● pip install --upgrade pip
● pip install PyQt4 ## 別記エラー3
以上3回行いましたが同じ症状でした
何かしらのヒントやアドバイスがありましたらお願いいたします。
※ Windows版 anaconda3 では正しくグラフが表示されます。
【追記、その後行った事】
stackoverflow.com にて同じ症状に対するページがありました。
pyqt5 が原因なのか・・・?
最下段の対応策を行いました。
conda install -y pyqt=4.11
これで PyQt4 に対するエラーはなくなりましたが
新たに libSM.so.6 エラーが発生しました。
これも stackoverflow.com にて同じ症状に対するページがあったので対応策を実行しました。
apt-get install libsm6 libxrender1 libfontconfig1
これで前記のエラーはなくなりましたが
また RuntimeError: Invalid DISPLAY variable が出てきました。orz
Display表示ができない状態なので超目先の対応としてグラフを画像として保存することにしました。
※ date_demo.py 修正コード 参照
しかし、画像が保存されません。 (涙) orz ※ Windows版では同じコードで画像保存されます。
今ここまで ・・・
(別記エラー1)
$ python date_demo.py
Traceback (most recent call last):
File "date_demo.py", line 16, in <module>
import matplotlib.pyplot as plt
File "/mnt/c/Users/Admin/.BashHome/anaconda3/lib/python3.5/site-packages/matplotlib/pyplot.py", line 114, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/mnt/c/Users/Admin/.BashHome/anaconda3/lib/python3.5/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/mnt/c/Users/Admin/.BashHome/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module>
from .backend_qt5 import QtCore
File "/mnt/c/Users/Admin/.BashHome/anaconda3/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 31, in <module>
from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__
File "/mnt/c/Users/Admin/.BashHome/anaconda3/lib/python3.5/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module>
from PyQt4 import QtCore, QtGui
ImportError: No module named 'PyQt4'
(別記エラー2)
$ pip install PyQt4
Collecting PyQt4
Could not find a version that satisfies the requirement PyQt4 (from versions: )
No matching distribution found for PyQt4
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
(別記エラー3)
$ pip install PyQt4
Collecting PyQt4
Could not find a version that satisfies the requirement PyQt4 (from versions: )
No matching distribution found for PyQt4
date_demo.py 修正コード
#!/usr/bin/env python
import datetime
import numpy as np
import matplotlib as mpl ## 加筆
mpl.use('Agg') ## 加筆
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.cbook as cbook
years = mdates.YearLocator() # every year
months = mdates.MonthLocator() # every month
yearsFmt = mdates.DateFormatter('%Y')
datafile = cbook.get_sample_data('goog.npy')
try:
r = np.load(datafile, encoding='bytes').view(np.recarray)
except TypeError:
r = np.load(datafile).view(np.recarray)
fig, ax = plt.subplots()
ax.plot(r.date, r.adj_close)
ax.xaxis.set_major_locator(years)
ax.xaxis.set_major_formatter(yearsFmt)
ax.xaxis.set_minor_locator(months)
datemin = datetime.date(r.date.min().year, 1, 1)
datemax = datetime.date(r.date.max().year + 1, 1, 1)
ax.set_xlim(datemin, datemax)
def price(x):
return '$%1.2f' % x
ax.format_xdata = mdates.DateFormatter('%Y-%m-%d')
ax.format_ydata = price
ax.grid(True)
fig.autofmt_xdate()
fig.savefig('date_demo.py.png') ## 加筆
# plt.show() ## コメントアウト
【環境】
WIndows 10
bash on windows
anaconda3-4.2.0
$ conda info
Current conda install:
platform : linux-64
conda version : 4.2.13
conda is private : False
conda-env version : 4.2.13
conda-build version : 2.0.2
python version : 3.5.2.final.0
requests version : 2.11.1
root environment : /mnt/c/Users/Admin/.BashHome/anaconda3 (writable)
default environment : /mnt/c/Users/Admin/.BashHome/anaconda3
envs directories : /mnt/c/Users/Admin/.BashHome/anaconda3/envs
package cache : /mnt/c/Users/Admin/.BashHome/anaconda3/pkgs
channel URLs : https://repo.continuum.io/pkgs/free/linux-64
https://repo.continuum.io/pkgs/free/noarch
https://repo.continuum.io/pkgs/pro/linux-64
https://repo.continuum.io/pkgs/pro/noarch
config file : None
offline mode : False