【发布时间】:2020-09-04 19:45:50
【问题描述】:
我正在使用 conda 和 pip 来管理我的包。
在我的 environment.yml 中,我有以下内容
- LOTS OF PACKAGES
- ...
- ...
- pip:
- pyarrow==0.16.0
所以 pyarrow 应该是一个特定的版本 - 0.16。
我 conda 激活到那个环境。当我进行 pip freeze 或 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 freeze 吗?
【问题讨论】:
-
使用pip在env中单独安装pyarrow包,而不是通过yml文件安装,还会出现这种情况吗?
-
是的,我在我的 conda 环境中手动进行了 pip 安装,当我实际运行 python 时它仍然具有旧版本。
-
pyarrow 是 conda 列表的一部分,在 yml 文件中还是仅在 pip 列表中?
-
@sinoroc 应该是,因为
pip show包含正确的位置。 -
@user3240688 一定要通过pip安装pyarrow吗?它不完全是当前问题的解决方案,但它似乎可以作为 Conda 包提供 (link)。