- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Python 3.3在其标准库中包括新软件包venv
。它有什么作用?与似乎与正则表达式(py)?(v|virtual|pip)?env
匹配的所有其他软件包有何不同?
最佳答案
PyPI软件包不在标准库中:virtualenv
是一个非常流行的工具,可为Python库创建隔离的Python环境。如果您不熟悉此工具,我强烈建议您学习它,因为它是非常有用的工具,在本答案的其余部分中,我将对其进行比较。
它的工作方式是在目录(例如:env/
)中安装一堆文件,然后修改PATH
环境变量以在其前面加上自定义的bin
目录(例如:env/bin/
)。 python
或python3
二进制文件的精确副本位于此目录中,但是Python编程为在环境目录中首先查找与其路径相关的库。它不是Python标准库的一部分,但是受到PyPA(Python包装管理局)的正式祝福。激活后,您可以使用pip
在虚拟环境中安装软件包。pyenv
用于隔离Python版本。例如,您可能想针对Python 2.7、3.6、3.7和3.8测试代码,因此需要一种在它们之间切换的方法。激活后,它会在PATH
环境变量前加上~/.pyenv/shims
前缀,其中存在与Python命令匹配的特殊文件(python
,pip
)。这些不是Python附带命令的副本。它们是特殊的脚本,它们根据PYENV_VERSION
环境变量或.python-version
文件或~/.pyenv/version
文件即时确定要运行哪个版本的Python。 pyenv
还使用命令pyenv install
简化了下载和安装多个Python版本的过程。pyenv-virtualenv
是与pyenv
相同作者的pyenv
插件,使您可以方便地同时使用pyenv
和virtualenv
。但是,如果您使用的是Python 3.3或更高版本,则pyenv-virtualenv
将尝试运行python -m venv
(如果可用),而不是virtualenv
。如果您不希望使用便捷功能,则可以将virtualenv
和pyenv
一起使用而不使用pyenv-virtualenv
。virtualenvwrapper
是virtualenv
的一组扩展(请参见docs)。它为您提供mkvirtualenv
,lssitepackages
,尤其是workon
之类的命令,用于在不同的virtualenv
目录之间切换。如果要多个virtualenv
目录,此工具特别有用。pyenv-virtualenvwrapper
是与pyenv
相同作者的pyenv
插件,可以方便地将virtualenvwrapper
集成到pyenv
中。pipenv
旨在将Pipfile
,pip
和virtualenv
组合为命令行上的一个命令。通常将virtualenv
目录放在~/.local/share/virtualenvs/XXX
中,其中XXX
是项目目录路径的哈希。这不同于virtualenv
,后者通常位于当前工作目录中。 pipenv
是在开发Python应用程序(而不是库)时使用的。
截至撰写时,pipenv
自2018年11月以来未在Pypi上发布任何版本,并且自2019年11月以来在GitHub上没有提交。文档网站pipenv.org已关闭(#4137),用户正在发布问题询问是否pipenv
已死(主要错误报告为#4058,请参见developer response)。有pipenv
的替代方案,例如poetry
,在此不再赘述,因为此问题仅与名称相似的软件包有关。
标准库:pyvenv
是Python 3附带的脚本,但deprecated in Python 3.6却有问题(更不用说混乱的名称了)。在Python 3.6及更高版本中,精确等效项为python3 -m venv
。venv
是Python 3附带的软件包,您可以使用python3 -m venv
运行(尽管出于某些原因,某些发行版将其分成了单独的发行包,例如Ubuntu / Debian上的python3-venv
)。它的作用与virtualenv
相同,但仅具有部分功能(see a comparison here)。 virtualenv
继续比venv
更受欢迎,尤其是因为前者同时支持Python 2和3。
给初学者的建议:
这是我对初学者的个人建议:首先学习virtualenv
和pip
,它们可在各种情况下与Python 2和3一起使用,并且在需要时选择其他工具。
关于python - venv,pyvenv,pyenv,virtualenv,virtualenvwrapper,pipenv等有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126927/
我对使用 venv 还很陌生。对于许多不同的软件包,有没有办法告诉每个 venv 使用了多少?当我删除 venv 时,我是否也删除了为其中的所有内容分配的内存空间? 最佳答案 When I delet
我是 python venv 的新手,很抱歉可能会提出愚蠢的问题。 我正在开发一个小型图书馆。我已经创建了开发虚拟环境,其中包含库使用所需的所有包,并将所有版本的需求卡住到 requirements.
我想创建一个具有 python3.8 作为 python3 的 venv 在 Ubuntu 18.04 上 我做了: > sudo apt install python3.8 python3.8-ve
全部 我对运行 shell 脚本的格式有疑问我遇到这个问题是我设置了一个虚拟环境 但是当我输入 . venv/bin/activate 代码没有问题,运行成功。但是我知道另一种运行方式是使用 ./v
尽管已正确安装所需的开发库和 venv 库,但我还是收到了这些连续错误。 这是终端中的连续输出。 ~/Desktop/virtualenvs$ python3.8 -m venv newpy38 Th
这个问题在这里已经有了答案: Why 'python3 -m venv myenv' installs older version of pip into myenv than any version
假设我创建了一个名为 venv (virtualenv venv) 的虚拟环境 从阅读教程中,我了解到有两种激活虚拟环境的方法: 。 venv/bin/激活 source venv/bin/activ
此问题已解决,已向 Python.org 报告错误。见我的self-answer below解决方法,直到它在 Python 的 future 版本中得到修复 我的一台电脑被这个 bug 咬住了,它不
选择venv python作为解释器后,当VScode左下方显示venv python时:- 我是否仍应在 VScode 终端中激活 venv 以进行 PIP 安装? 或者,由于 venv pytho
我的 Ubuntu 已经安装了几个 Python: /usr/bin/python2.7: Python 2.7.5 /usr/local/bin/python3.6: Python 3.6.10 /
我想使用 Enthought 的 Canopy 发行版创建一个虚拟环境,但没有站点包。 以下:https://support.enthought.com/entries/21802240-Use-ve
(在用重复的问题投票标记我之前,请注意,我在这个问题上找到的所有内容都与 virtualenv 有关,而不是 venv) 系统: Ubuntu 服务器 16.04 已安装 Python 3.6,原生
我在 ubuntu 14.04 桌面上使用 emacs 24.5,并使用 pyvenv 包来管理我的虚拟环境。 我有两个不同的Python虚拟环境,一个使用Python 2,另一个使用Python 3
我想创建一个 venv 环境(不是 virtualenv )使用以下命令: sudo apt-get install python3.8-venv python3.8 -m venv venv_nam
我正在尝试使用以下方法在 Windows 中创建一个虚拟环境: python3 -m venv 运行上述命令后,在cmd中查看当前目录的内容时,没有看到venv目录出现。该命令不会引发任何错误。 这
我正在使用 .venv 创建一个用于项目的虚拟环境。在这个项目中,我需要访问 OpenAI GPT3 环境。为此,我有一个 API key ,但我想将其存储为环境变量。因为我使用windows和VS-
我正在尝试使用多阶段创建Python webapp docker镜像,以缩小镜像大小...现在大约300mb ...它也在使用虚拟环境。 docker镜像会构建并正常运行,直到我需要添加多阶段为止,以
正在学习Python和Django,想从PyCharm社区版2019.3激活虚拟环境 我可以看到在我的文件夹下创建的 venv 但是当我尝试使用命令激活它时 source venv/bin/activ
我正在使用 .venv 创建一个用于项目的虚拟环境。在这个项目中,我需要访问 OpenAI GPT3 环境。为此,我有一个 API key ,但我想将其存储为环境变量。因为我使用windows和VS-
正在学习Python和Django,想从PyCharm社区版2019.3激活虚拟环境 我可以看到在我的文件夹下创建的 venv 但是当我尝试使用命令激活它时 source venv/bin/activ
我是一名优秀的程序员,十分优秀!