提问人:olamarre 提问时间:11/12/2023 最后编辑:olamarre 更新时间:11/12/2023 访问量:43
为什么 conda 在我的环境中安装不兼容的 jupyterlab 依赖项 (prometheus_client)?
Why does conda install non-compatible jupyterlab dependency (prometheus_client) in my environment?
问:
我正在通过 Ubuntu 20.04 上的标准 miniconda3 安装运行 conda。我需要一个 Python 3.7 环境,并具有以下简化的 conda 环境文件():test_env.yaml
name: test-env
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.7
- ipykernel
- jupyterlab
使用并激活环境后,我尝试在 Python 会话中导入,但出现导入错误:conda env create -f test_env.yaml
jupyterlab
(test-env) [~]$ python
Python 3.7.12 | packaged by conda-forge | (default, Oct 26 2021, 06:08:21)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import jupyterlab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/olamarre/miniconda3/envs/test-env/lib/python3.7/site-packages/jupyterlab/__init__.py", line 7, in <module>
from .handlers.announcements import ( # noqa
File "/home/olamarre/miniconda3/envs/test-env/lib/python3.7/site-packages/jupyterlab/handlers/announcements.py", line 14, in <module>
from jupyter_server.base.handlers import APIHandler
File "/home/olamarre/miniconda3/envs/test-env/lib/python3.7/site-packages/jupyter_server/base/handlers.py", line 18, in <module>
import prometheus_client
File "/home/olamarre/miniconda3/envs/test-env/lib/python3.7/site-packages/prometheus_client/__init__.py", line 3, in <module>
from . import (
File "/home/olamarre/miniconda3/envs/test-env/lib/python3.7/site-packages/prometheus_client/metrics.py", line 5, in <module>
from typing import (
ImportError: cannot import name 'Literal' from 'typing' (/home/olamarre/miniconda3/envs/test-env/lib/python3.7/typing.py)
>>>
其中一个 jupyterlab 依赖项 尝试进行仅适用于 Python 3.8 及更高版本的导入,而不适用于 Python 3.7。因此,该软件包版本(0.18)与我的环境不兼容。如果我明确告诉 conda 安装同一包的早期版本(通过添加到环境文件中的依赖项),则问题已解决。prometheus_client
prometheus_client
prometheus_client=0.17
我的问题是:这可能是jupyterlab
依赖树的conda配置有问题吗?(如果是这样,我该如何标记此问题以修复它?或者这可能是我的问题吗?(如果是这样,我应该如何调试它?
让我怀疑的是,我最近创建了一个单独的 Python 3.11 环境,该环境也安装了(以同样的方式,但在 conda 环境文件中),所以我想知道该环境的缓存包是否正在重用于 Python 3.7 环境。jupyterlab
python=3.11
prometheus_client
答:
我自己问题的潜在答案 - 我刚刚在 prometheus conda 包文件中注意到几天前升级到 0.18,并且要求仅施加 python >= 3.6。我怀疑这可能是问题所在,将跟进开发人员(打开了一个 github 问题)。
评论
python >=3.8
noarch
评论