我如何在 anaconda 下的 Mac 上安装 pandas 1.1.0 并通过挂在 "Solving environment" 上的 conda
How can I install pandas 1.1.0 on Mac under anaconda and get past conda hanging on "Solving environment"
当我尝试时:
% conda update pandas
Collecting package metadata (current_repodata.json): done
Solving environment: |
Updating pandas is constricted by
anaconda -> requires pandas==1.0.5=py38h959d312_0
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`
done
# All requested packages already installed.
这个 on stack overflow 据说要尝试:
conda install -c conda-forge pandas==1.1.0
但这只是挂起:
% conda install -c conda-forge pandas==1.1.0
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: |
如下所示,我可以使用
安装 pandas 的旧 1.0.5 版本
conda install -c anaconda pandas
所以我想我的环境似乎运行正常...我只是无法从 conda-forge
安装 Pandas 的 v 1.1.0
% conda install -c anaconda pandas
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /opt/anaconda3
added / updated specs:
- pandas
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2020.6.24 | 0 132 KB anaconda
certifi-2020.6.20 | py38_0 159 KB anaconda
conda-4.8.5 | py38_0 3.1 MB anaconda
openssl-1.1.1g | h1de35cc_0 3.4 MB anaconda
pandas-1.0.5 | py38h959d312_0 9.8 MB anaconda
------------------------------------------------------------
Total: 16.6 MB
The following packages will be SUPERSEDED by a higher-priority channel:
ca-certificates pkgs/main --> anaconda
certifi pkgs/main --> anaconda
conda pkgs/main --> anaconda
openssl pkgs/main --> anaconda
pandas pkgs/main --> anaconda
Proceed ([y]/n)? y
Downloading and Extracting Packages
openssl-1.1.1g | 3.4 MB | ################################################################################################################################################################################################ | 100%
pandas-1.0.5 | 9.8 MB | ################################################################################################################################################################################################ | 100%
certifi-2020.6.20 | 159 KB | ################################################################################################################################################################################################ | 100%
conda-4.8.5 | 3.1 MB | ################################################################################################################################################################################################ | 100%
ca-certificates-2020 | 132 KB | ################################################################################################################################################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
我尝试了 Anaconda Navigator,但是当我 select“pandas”升级并单击“应用”时,会出现 window 说以下软件包将被修改,但是window 为空。 window 中的应用按钮被禁用,所以我认为它没有做任何事情:
我能够通过 pip 升级到 pandas 1.1.3:
% pip install pandas --upgrade
Collecting pandas
Downloading pandas-1.1.3-cp38-cp38-macosx_10_9_x86_64.whl (10.1 MB)
|████████████████████████████████| 10.1 MB 2.1 MB/s
Requirement already satisfied, skipping upgrade: python-dateutil>=2.7.3 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (2.8.1)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (2020.1)
Requirement already satisfied, skipping upgrade: numpy>=1.15.4 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (1.18.5)
Requirement already satisfied, skipping upgrade: six>=1.5 in /opt/anaconda3/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Installing collected packages: pandas
Attempting uninstall: pandas
Found existing installation: pandas 1.0.5
Uninstalling pandas-1.0.5:
Successfully uninstalled pandas-1.0.5
Successfully installed pandas-1.1.3
我想这没问题,但不确定我的 anaconda 环境现在是否会以某种方式失去完整性。我想我的问题仍然存在,关于通过 anaconda/conda 升级的方式,或者可能没有区别,混合使用 anaconda/conda 和 pip 命令也可以。我真的不知道。
首先,关于 conda-forge 和 pip 的一些一般要点:
- It is not recommended to install packages from conda-forge to the base environment
- It is recommended to avoid mixing conda and pip if possible
这是因为很有可能您最终会遇到一个处于不一致状态的环境,根本无法安装或删除软件包。如果 conda 的基础环境发生这种情况,那么唯一的方法通常是完全重新安装 Anaconda。
一般而言,最佳做法是使用 conda 虚拟环境,尤其是如果您 want/have 使用 conda-forge 和 pip。然后,如果您的环境进入不一致状态,您只需将其删除并重新开始。
在你的情况下,它可能看起来像这样:
- 创建一个新的 conda 环境
pandas_project
,从官方 conda 频道安装 pandas 1.1.0:conda create -n pandas_project pandas==1.1.0
- 切换到新创建的环境
conda activate pandas_project
- 使用 conda 和官方渠道安装尽可能多的包。
- 设置 conda-forge(仅针对此环境 (!),注意
--env
标志):conda config --env --add channels conda-forge
和 conda config --env --set channel_priority strict
- 从 conda-forge 官方渠道不可用的软件包安装
- 使用
conda list --explicit > pandas_project_env.txt
保存环境状态。
- 使用pip安装官方和conda-forge渠道都没有的包
如果环境最终处于不一致状态,请将其删除 conda env remove --name pandas_project
并重新创建。官方和conda-forge渠道的包可以快速重装conda install --file pandas_project_env.txt
Anaconda 附带了一大堆软件包 pre-installed。因此,它们当然具有相互依赖性,有时也会限制不能使用某些包的最新版本。所以在你的情况下,你可以在尝试
时看到
conda update pandas
它给了你
Updating pandas is constricted by
anaconda -> requires pandas==1.0.5=py38h959d312_0
基本上告诉您 pre-installed anaconda 软件包捆绑包需要 pandas 版本 1.0.5 才能正常运行
当你这样做时
conda install -c conda-forge pandas=1.1.0
然后 conda 尝试理清导致之前安装 1.0.5 的所有要求,并尝试找到一种方法来获得您需要的版本。由于在您的基础环境中 pre-installed 的软件包列表很长(检查 conda list
),这需要很长时间(您描述为挂起)并且最终可能会失败。
I was able to upgrade to pandas 1.1.3 via pip:
这是因为本质上,pip
将“不关心”pre-installed 与 anaconda
的库的所有相互依赖关系
not sure if my anaconda environment will now have lost its integrity
总结:
conda
确信在当前状态下 1.0.5 是所有软件包正常工作所需的版本
pip install
你强行安装了一个不同的版本
所以是的,原则上,由于使用 pip install
升级以前由 conda 管理的软件包,您现在处于不一致的软件包依赖关系状态,这是您永远不应该做的事情,请参阅 anaconda website 了解详情。
为了避免基础环境中 pre-installed 包的复杂化,您可以创建一个新环境并在其中自由安装所需的版本:
conda create -n <env-Name> pandas=1.1
conda activate <env-Name>
这将创建一个仅安装 pandas
的虚拟环境。然后你可以根据需要conda install
其他包
当我尝试时:
% conda update pandas
Collecting package metadata (current_repodata.json): done
Solving environment: |
Updating pandas is constricted by
anaconda -> requires pandas==1.0.5=py38h959d312_0
If you are sure you want an update of your package either try `conda update --all` or install a specific version of the package you want using `conda install <pkg>=<version>`
done
# All requested packages already installed.
这个
conda install -c conda-forge pandas==1.1.0
但这只是挂起:
% conda install -c conda-forge pandas==1.1.0
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: |
如下所示,我可以使用
安装 pandas 的旧 1.0.5 版本conda install -c anaconda pandas
所以我想我的环境似乎运行正常...我只是无法从 conda-forge
安装 Pandas 的 v 1.1.0% conda install -c anaconda pandas
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /opt/anaconda3
added / updated specs:
- pandas
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2020.6.24 | 0 132 KB anaconda
certifi-2020.6.20 | py38_0 159 KB anaconda
conda-4.8.5 | py38_0 3.1 MB anaconda
openssl-1.1.1g | h1de35cc_0 3.4 MB anaconda
pandas-1.0.5 | py38h959d312_0 9.8 MB anaconda
------------------------------------------------------------
Total: 16.6 MB
The following packages will be SUPERSEDED by a higher-priority channel:
ca-certificates pkgs/main --> anaconda
certifi pkgs/main --> anaconda
conda pkgs/main --> anaconda
openssl pkgs/main --> anaconda
pandas pkgs/main --> anaconda
Proceed ([y]/n)? y
Downloading and Extracting Packages
openssl-1.1.1g | 3.4 MB | ################################################################################################################################################################################################ | 100%
pandas-1.0.5 | 9.8 MB | ################################################################################################################################################################################################ | 100%
certifi-2020.6.20 | 159 KB | ################################################################################################################################################################################################ | 100%
conda-4.8.5 | 3.1 MB | ################################################################################################################################################################################################ | 100%
ca-certificates-2020 | 132 KB | ################################################################################################################################################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
我尝试了 Anaconda Navigator,但是当我 select“pandas”升级并单击“应用”时,会出现 window 说以下软件包将被修改,但是window 为空。 window 中的应用按钮被禁用,所以我认为它没有做任何事情:
我能够通过 pip 升级到 pandas 1.1.3:
% pip install pandas --upgrade
Collecting pandas
Downloading pandas-1.1.3-cp38-cp38-macosx_10_9_x86_64.whl (10.1 MB)
|████████████████████████████████| 10.1 MB 2.1 MB/s
Requirement already satisfied, skipping upgrade: python-dateutil>=2.7.3 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (2.8.1)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (2020.1)
Requirement already satisfied, skipping upgrade: numpy>=1.15.4 in /opt/anaconda3/lib/python3.8/site-packages (from pandas) (1.18.5)
Requirement already satisfied, skipping upgrade: six>=1.5 in /opt/anaconda3/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Installing collected packages: pandas
Attempting uninstall: pandas
Found existing installation: pandas 1.0.5
Uninstalling pandas-1.0.5:
Successfully uninstalled pandas-1.0.5
Successfully installed pandas-1.1.3
我想这没问题,但不确定我的 anaconda 环境现在是否会以某种方式失去完整性。我想我的问题仍然存在,关于通过 anaconda/conda 升级的方式,或者可能没有区别,混合使用 anaconda/conda 和 pip 命令也可以。我真的不知道。
首先,关于 conda-forge 和 pip 的一些一般要点:
- It is not recommended to install packages from conda-forge to the base environment
- It is recommended to avoid mixing conda and pip if possible
这是因为很有可能您最终会遇到一个处于不一致状态的环境,根本无法安装或删除软件包。如果 conda 的基础环境发生这种情况,那么唯一的方法通常是完全重新安装 Anaconda。
一般而言,最佳做法是使用 conda 虚拟环境,尤其是如果您 want/have 使用 conda-forge 和 pip。然后,如果您的环境进入不一致状态,您只需将其删除并重新开始。
在你的情况下,它可能看起来像这样:
- 创建一个新的 conda 环境
pandas_project
,从官方 conda 频道安装 pandas 1.1.0:conda create -n pandas_project pandas==1.1.0
- 切换到新创建的环境
conda activate pandas_project
- 使用 conda 和官方渠道安装尽可能多的包。
- 设置 conda-forge(仅针对此环境 (!),注意
--env
标志):conda config --env --add channels conda-forge
和conda config --env --set channel_priority strict
- 从 conda-forge 官方渠道不可用的软件包安装
- 使用
conda list --explicit > pandas_project_env.txt
保存环境状态。 - 使用pip安装官方和conda-forge渠道都没有的包
如果环境最终处于不一致状态,请将其删除 conda env remove --name pandas_project
并重新创建。官方和conda-forge渠道的包可以快速重装conda install --file pandas_project_env.txt
Anaconda 附带了一大堆软件包 pre-installed。因此,它们当然具有相互依赖性,有时也会限制不能使用某些包的最新版本。所以在你的情况下,你可以在尝试
时看到conda update pandas
它给了你
Updating pandas is constricted by
anaconda -> requires pandas==1.0.5=py38h959d312_0
基本上告诉您 pre-installed anaconda 软件包捆绑包需要 pandas 版本 1.0.5 才能正常运行
当你这样做时
conda install -c conda-forge pandas=1.1.0
然后 conda 尝试理清导致之前安装 1.0.5 的所有要求,并尝试找到一种方法来获得您需要的版本。由于在您的基础环境中 pre-installed 的软件包列表很长(检查 conda list
),这需要很长时间(您描述为挂起)并且最终可能会失败。
I was able to upgrade to pandas 1.1.3 via pip:
这是因为本质上,pip
将“不关心”pre-installed 与 anaconda
not sure if my anaconda environment will now have lost its integrity
总结:
conda
确信在当前状态下 1.0.5 是所有软件包正常工作所需的版本pip install
你强行安装了一个不同的版本
所以是的,原则上,由于使用 pip install
升级以前由 conda 管理的软件包,您现在处于不一致的软件包依赖关系状态,这是您永远不应该做的事情,请参阅 anaconda website 了解详情。
为了避免基础环境中 pre-installed 包的复杂化,您可以创建一个新环境并在其中自由安装所需的版本:
conda create -n <env-Name> pandas=1.1
conda activate <env-Name>
这将创建一个仅安装 pandas
的虚拟环境。然后你可以根据需要conda install
其他包