如何防止虚拟环境访问系统包?

问题描述 投票:0回答:1

菜鸟在这里。我有一个 dockerized jupyter 实验室实例,其中为 root 用户安装了一堆软件包,现在我想添加一个根本没有软件包的额外内核(还)。这是我尝试这样做的方法:

# SYSTEM SETUP
FROM python:3.11.5-bookworm

ADD requirements/pip /requirements/pip
RUN pip install -r /requirements/pip
RUN mkdir /venv/ \
    && cd /venv/ \
    && python -m venv blank \
    && /venv/blank/bin/pip install ipykernel \
    && /venv/blank/bin/python -m ipykernel install --user --name=blank-env

我希望 root python 环境具有我的

requirements/pip
文件中列出的所有包,并且我的
blank-env
环境为空。

但是,当我在 docker 容器中运行

jupyter lab
并选择
blank-env
内核时,它似乎可以访问我的需求文件中的所有包。我在这里做错了什么?

python virtualenv
1个回答
0
投票

1.检查内核配置:确保在空白环境中安装 ipykernel 时,在安装之前激活虚拟环境。

FROM python:3.11.5-bookworm

ADD requirements/pip /requirements/pip
RUN pip install -r /requirements/pip

RUN python -m venv /venv/blank
RUN /venv/blank/bin/pip install ipykernel
RUN /venv/blank/bin/python -m ipykernel install --user --name=blank-env

2.重启Jupyter实验室服务器

3.验证内核环境

import sys
sys.executable

这将显示内核正在使用的 Python 可执行文件的路径。如果它指向全局 Python 环境,则可能存在内核安装或激活方式的问题。

© www.soinside.com 2019 - 2024. All rights reserved.