Python - pip フリーズ時のライブラリのバージョンが実際に実行したときと異なるのはなぜですか?

okwaves2024-01-25  8

パッケージの管理に 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"

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。