2
0

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.

PYNQ2.3にPandasをインストールする

Last updated at Posted at 2020-12-23

訳あって自分でZYBO-Z7-20向けにSDカードビルドしたPYNQ2.3にPandasをインストールしようとしたところバージョン不整合でうまくいかなかった(2020年12月現在)ので、バージョンを指定してインストールすることで問題解決をしましたので、情報共有します。
問題解決の経緯も書いておきますので、ご参考まで。

PYNQ2.3は2018年9月にリリースしたようです。

ビットストリームを書き込むために、Overlayをimportしようとすると、以下のようにModuleNotFoundError: No module named 'pandas'といわれて、実行できません。

test.py
#! /usr/bin/python3.6
# -*- coding: utf-8 -*-

from pynq import Overlay
root@pynq:~# python3 test.py 
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    from pynq import Overlay
  File "/usr/local/lib/python3.6/dist-packages/pynq/__init__.py", line 45, in <module>
    from .pmbus import get_rails
  File "/usr/local/lib/python3.6/dist-packages/pynq/pmbus.py", line 31, in <module>
    import pandas as pd
ModuleNotFoundError: No module named 'pandas'

そのため、Pandasをインストールしようとしたのですが、現時点でpipインストールしようとすると、下記のエラーでインストールできません。(最新版の1.1.5をインストールしようとしているようです。)

root@pynq:~# pip3 install pandas
Collecting pandas
  Downloading https://files.pythonhosted.org/packages/fb/e4/828bb9c2474ff6016e5ce96a78220d485436d5468c23068f4f6c2eb9cff8/pandas-1.1.5.tar.gz (5.2MB)
    100% |????????????????????????????????| 5.2MB 25kB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-2ja6drqy/pandas/setup.py", line 793, in <module>
        setup_package()
      File "/tmp/pip-build-2ja6drqy/pandas/setup.py", line 763, in setup_package
        ext_modules=maybe_cythonize(extensions, compiler_directives=directives),
      File "/tmp/pip-build-2ja6drqy/pandas/setup.py", line 517, in maybe_cythonize
        f"Cannot cythonize with old Cython version ({_CYTHON_VERSION} "
    RuntimeError: Cannot cythonize with old Cython version (0.26.1 installed, needs 0.29.21)
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-2ja6drqy/pandas/

どうやら、Cythonが古いのが問題のようです。ということで、Cythonのアップデートを試みました。

root@pynq:~# pip3 install -U cython
Collecting cython
  Downloading https://files.pythonhosted.org/packages/ad/4b/9e53bcce3c959fd0db143626e573210bba07be810fe8d7296373948c4183/Cython-0.29.21-py2.py3-none-any.whl (974kB)
    100% |????????????????????????????????| 983kB 133kB/s 
Installing collected packages: cython
  Found existing installation: Cython 0.26.1
    Not uninstalling cython at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed cython-0.29.21

ということで無事Cythonが最新版になりました。

再度Pandasのインストールを試みましたが、、、

root@pynq:~# pip3 install pandas

「Python3.7以上が必要」、というエラーでインストールできませんでした。
確かにPandasの公式WEBサイトを見ると、要求バージョンがPython3.7です。
PYNQ2.3のPythonバージョンは3.6ですので、Python3.7をインストールするとなると大手術です。

過去のPandasのバージョンであれば、Python3.6で行けるのではないかと思い、過去のリリースノートをしらべました。

すると、0.25あたりであれば、良さそうな感じでしたので、pandasのバージョン0.25を指定してインストールしてみました。

root@pynq:~# pip3 install pandas==0.25
Collecting pandas==0.25
  Downloading https://files.pythonhosted.org/packages/0b/1f/8fca0e1b66a632b62cc1ae38e197befe48c5cee78f895edf4bf8d340454d/pandas-0.25.0.tar.gz (12.6MB)
    100% |????????????????????????????????| 12.6MB 10kB/s
Requirement already satisfied: numpy>=1.13.3 in /usr/lib/python3/dist-packages (from pandas==0.25)
Requirement already satisfied: python-dateutil>=2.6.1 in /usr/lib/python3/dist-packages (from pandas==0.25)
Requirement already satisfied: pytz>=2017.2 in /usr/lib/python3/dist-packages (from pandas==0.25)
Building wheels for collected packages: pandas
  Running setup.py bdist_wheel for pandas ... done
  Stored in directory: /root/.cache/pip/wheels/f2/b7/bb/14e0dd0f52f30829ded2c074e9240f9a5507a082caeb980af2
Successfully built pandas
Installing collected packages: pandas
Successfully installed pandas-0.25.0

すると、インストール成功。

無事、from pynq import Overlayも動作しました。

追記1:後になって思えば、Cythonのバージョンアップは必要なかったかもしれません。
追記2:このPYNQ2.3は自分でSDカードビルドしたものです。配布されているPYNQイメージはPandasがちゃんとインストールされていますので、そもそもこのような問題は生じないようです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?