尝试使用 pip 安装时出现“外部管理环境”错误,尽管处于虚拟环境中

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

首先:我的操作系统是 openSUSE Tumbleweed,我的 Python 版本是 3.11.7,我的 pip 版本是 23.2.2

我的目标如下:我想使用pip将pytictoc包安装到我用Python创建的虚拟环境中。

我对如何做到这一点的理解是:

  1. 运行
    python3 -m venv env
    为我的虚拟环境创建一个名为
    env
    的目录。
  2. 然后,在该目录中,我运行
    source bin/activate
    来激活虚拟环境
  3. 确保虚拟环境确实正在运行;
    (env)
    应出现在当前行以及任何后续行的开头。
  4. 运行
    python -m pip install pytictoc
    将pytictoc包安装到虚拟环境

尝试执行这些步骤时,1-3 没有任何问题,但是运行步骤 4 中的命令会产生

externally-managed-environment
错误。这是完整的错误消息:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try
    zypper install python311-xyz, where xyz is the package
    you are trying to install.
    
    If you wish to install a non-rpm packaged Python package,
    create a virtual environment using python3.11 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip.
    
    If you wish to install a non-rpm packaged Python application,
    it may be easiest to use `pipx install xyz`, which will manage a
    virtual environment for you. Install pipx via `zypper install python311-pipx` .

据我所知,我做的一切都是正确的,所以我不知道如何解决这个问题。我见过涉及在 pip 上附加

--break-system-packages
的解决方案,但这似乎适用于用户不使用虚拟环境的情况。据我所知,除了thisaskubuntu问题之外,没有其他论坛有人遇到我的确切问题。用户回复了最上面的答案,解释说尽管处于虚拟环境中,他们仍然收到错误消息。然而这条评论没有得到任何回应。

可能还有其他解决方案,例如使用 pipx,或其他虚拟环境(例如 conda)。不幸的是,对我来说,使用 venv 创建虚拟环境,并使用 pip 专门安装“pytictoc”包是“必要的”。我无法在系统范围内安装该软件包。 我感谢任何人能够提供的任何帮助或回应。感谢您花时间阅读本文!

python-3.x installation pip package python-venv
2个回答
4
投票
python

aliased
(在您的 shell 中)to /usr/bin/python3.11。因此,当您在命令行中运行
python -m pip
时,您实际上运行的是全局
pip
,而不是来自 venv 的
pip
,并且全局
pip
抱怨“外部管理环境”。
当您激活虚拟环境时,您应该取消别名

python

;您可以将

unalias python python3
插入到
activate
脚本中。或者始终使用绝对或相对路径运行
venv/bin/python -m pip
    


0
投票
where python

确保您使用正确的虚拟环境。

    

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