美文网首页pythonDocker-Podman
Docker容器debain中pip安装报externally-

Docker容器debain中pip安装报externally-

作者: ___n | 来源:发表于2024-07-29 16:40 被阅读0次

    因为 Python 环境是由外部管理的,而不是通过 pip 进行管理,所以在安装的时候会报这个错误.
    更多详情可以看官方内容
    https://realpython.com/python-virtual-environments-a-primer/

    pip3 install --timeout=3600 django==3.2.*
    error: externally-managed-environment
    
    × This environment is externally managed
    ╰─> To install Python packages system-wide, try apt install
        python3-xyz, where xyz is the package you are trying to
        install.
        
        If you wish to install a non-Debian-packaged Python package,
        create a virtual environment using python3 -m venv path/to/venv.
        Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
        sure you have python3-full installed.
        
        If you wish to install a non-Debian packaged Python application,
        it may be easiest to use pipx install xyz, which will manage a
        virtual environment for you. Make sure you have pipx installed.
        
        See /usr/share/doc/python3.11/README.venv for more information.
    
    note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
    hint: See PEP 668 for the detailed specification.
    

    暴力方法,强制删除此警告。

    “python3.11” 注意替换为你自己的版本

    cd /usr
    find ./ -name EXTERNALLY-MANAGED
    #./lib/python3.11/EXTERNALLY-MANAGED
    mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.bak
    pip3 install --timeout=3600 django==3.2.* 
    Collecting django==3.2.*
      Downloading Django-3.2.25-py3-none-any.whl (7.9 MB)
         ━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/7.9 MB 10.6 kB/s eta 0:07:31
    

    优雅方法,使用pipx

    您在上面看到的涉及手动工作。Pipx 使其自动化。
    它会自动为您安装的每个应用程序创建一个新的虚拟环境。不仅。它还在 中创建指向它的链接.local/bin。这样,安装该软件包的用户就可以从命令行中的任何位置运行它。

    apt install pipx
    pipx ensurepath
    

    然后用 pipx install package_name 安装

    脱库子放屁法,使用venv

    在 docker 里再构件一个python虚拟环境

    apt install python3-venv
    mkdir -p $HOME/.env && python3 -m venv $HOME/.env/project_name
    $HOME/.env/project_name/bin/python -m pip install --upgrade pip
    $HOME/.env/project_name/bin/python -m pip install django
    

    相关文章

      网友评论

        本文标题:Docker容器debain中pip安装报externally-

        本文链接:https://www.haomeiwen.com/subject/eyjwhjtx.html