当前位置: 首页 > 知识库问答 >
问题:

Python—虚拟环境使用系统目录

曹建明
2023-03-14

我已经创建了一个Python虚拟环境,并通过执行以下操作来激活它:

joe@joe-mint $ source ./venvs/deep-learning/bin/activate

将提示转换为:

(deep-learning) joe@joe-mint $

现在,每当我运行一个python包或尝试安装一个时,系统似乎忽略了它在虚拟环境中的事实,并在系统范围内执行操作:

(deep-learning) joe@joe-mint $ which pip
/usr/local/bin/pip

当我尝试安装不在系统上的新软件包时,也会发生同样的情况;它将它们安装到系统文件(即/usr/bin)而不是虚拟环境中。

我的虚拟环境怎么了?如何让它忽略系统文件并在环境中执行所有操作?

我看过这个问题,它说在创建虚拟环境时使用显式标志,使其使用本地环境包,但我使用了python-3.5-m venv来创建虚拟环境,这个标志在这个版本中被删除,因为它现在是一个默认选项。

我还研究了这个问题,可以确认在虚拟环境的activate文件中正确设置了VIRTUAL_ENV变量。

共有1个答案

闻法
2023-03-14

问题是:

如果您在没有本地pip安装的情况下在venv上运行pip,那么它将默认为venv外部的系统pip。即使您激活了虚拟环境,这似乎也希望在系统上而不是在venv中安装软件包。

解决方案如下:

>

  • 首先,由于一个长期未解决的错误,我不得不安装没有pip的虚拟环境。

    其次,我按照这里的说明在虚拟环境中安装了pip。但是,这样做需要使用一些临时文件夹,由于某种原因,我的用户无法访问这些文件夹。所以这个失败了,我能让它工作的唯一方法就是变成根。

    1. sudo su

    虽然其中pip现在指示正确的pip(在venv内)被使用,运行pip将使用系统一!停用(停用)和重新激活venv解决了这个问题。

    现在我花了一段时间才意识到,当尝试在虚拟环境中使用pip安装更多包时,将其作为root安装会导致权限错误。

    chown

    就这样。完成这些步骤后,我可以激活venv并正确运行pip。它将在venv内部使用pip,并在venv内部安装软件包。

  •  类似资料:
    • python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 安装 virtualenv $ pip install virtualenv 配置 pip 安装第

    • 在视窗和蟒蛇 3.9x 中运行 VS 代码 我创建了一个新的项目文件夹,并为此项目创建了一个新的虚拟环境。我创建的第一个脚本是一个 .ipynb 文件(jupyter 笔记本),它工作正常。当我将脚本导出到.py文件时,它在第一行代码上生成错误: < code >从pynput导入键盘 模块未发现错误: 没有名为“pynput”的模块 pynput库安装在这个虚拟环境中,这就是. ipynb文件运

    • 本文向大家介绍Python使用Anaconda制作虚拟环境,包括了Python使用Anaconda制作虚拟环境的使用技巧和注意事项,需要的朋友参考一下 示例 virtualenvAnaconda的强大替代品-跨平台的pip类软件包管理器,捆绑了可快速创建和删除虚拟环境的功能。安装Anaconda之后,以下是一些入门指南: 创建环境 在<envname>您的虚拟环境中使用任意名称,并且<versio

    • 本文向大家介绍在Xen虚拟机全虚拟化环境中安装Windows2003系统,包括了在Xen虚拟机全虚拟化环境中安装Windows2003系统的使用技巧和注意事项,需要的朋友参考一下 Xen虚拟机支持两种客户机的安装方式。一种是半虚拟化,一种是全虚拟化。Win2003系统要求在全虚拟化的环境下安装和运行。 硬件环境:DELL R710  CPU须支持虚拟化技术(可cat /proc/cpuinfo |

    • 这份教程是帮助你安装和使用 Python 的包 本指南会告诉你如何安装和使用必要的工具。值得注意的是 Python 可以做许多许多的事情,至于你如何去安装和管理你的依赖可能会根据你项目的不同而不同。这份指南更多是开发和部署网络服务(包括 web 应用),但是这份指南同样适用于帮助你管理任何项目的开发和测试环境。 注意:这份指南是在 Python 3 版本下完成的,如果你由于不可抗拒的原因仍然在使用

    • 我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。 据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为