パッケージの管理に conda と pip を使用しています。
私のenvironment.ymlには次のものがあります
- LOTS OF PACKAGES
- ...
- ...
- pip:
- pyarrow==0.16.0
したがって、pyarrow は特定のバージョン - 0.16 でなければなりません。
その環境に conda アクティベートします。そして、pip フリーズまたは pip show を実行すると、バージョンが一致します。 0.16 になるはずです
(CONDA) $ pip show pyarrow
Name: pyarrow
Version: 0.16.0
Summary: Python library for Apache Arrow
Home-page: https://arrow.apache.org/
Author: None
Author-email: None
License: Apache License, Version 2.0
Location: /home/<USRER>/anaconda3/envs/CONDA/lib/python3.6/site-packages
Requires: numpy, six
しかし、Python を起動してライブラリをインポートし、バージョンを取得しようとすると、別のバージョンになります。
(CONDA) $ python
Python 3.6.6 |Anaconda, Inc.| (default, Oct 9 2018, 12:34:16)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyarrow
>>> pyarrow.__version__
'0.12.0'
>>> pyarrow.__file__
'/home/<USER>/anaconda3/envs/CONDA/lib/python3.6/site-packages/pyarrow/__init__.py'
どうしてそんなことが可能なのか理解できません。バージョンが一致することを期待しますが、何らかの理由で、Python は pyarrow が異なるバージョンであると主張します。
今、conda 環境全体が悪いのではないかと疑っています。 Python で取得したバージョンは pip フリーズと一致するべきではないでしょうか?
yml ファイルを介してインストールするのではなく、pip を使用して pyarrow パッケージを env に個別にインストールした場合でも問題は発生しますか?
– asanoop24
2020 年 9 月 4 日 20:04
はい、conda 環境内で pip インストールを手動で実行しましたが、実際に Python を実行すると古いバージョンが残っています。
– user3240688
2020 年 9 月 4 日 20:06
pyarrow は、yml ファイル内の conda リストにも含まれますか、それとも pip リストのみに含まれますか?
– asanoop24
2020 年 9 月 4 日 20:23
1
@sinoroc pip ショーには正しい場所が含まれているため、そのはずです。
– AMC
2020 年 9 月 5 日 0:10
1
@user3240688 pip 経由で pyarrow をインストールする必要がありますか?現在の問題に対する正確な解決策ではありませんが、Conda パッケージ (リンク) として入手できるようです。
– AMC
2020 年 9 月 5 日 0:11
------------------------
pyarrow は、__version__ 変数を使用していくつかの面白いことを行います。これは、setuptools-scm を使用して生成されます。
インストールした conda リリースが何らかの理由で壊れている可能性があります。クローンを作成し、クローンされたフォルダーから pip を使用してインストールすることで、手動でインストールしてみてください。conda を通さずに実行して、異なる結果が得られるかどうかを確認してください。
次のコマンドを実行すると、これを自動的に実行できると思います。
pip install "git+https://github.com/apache/[email protected]#egg=pyarrow&subdirectory=python"