- 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/
我主要使用笔记本,所以在命令行上,我通常只想为我拥有的特定 python 版本安装特定的包。目前,我通常会更改全局python版本,运行pip并将全局版本改回。有没有办法在特定的 pyenv 中执行单
我不知道如何正确设置 pyenv 来切换 python 版本。 实际上,我必须在 SUSE LINUX ENTERPRISE SERVER 10 SP3 上切换/尝试更新的 python 版本(我知道
这让我很困惑,我不知道这是什么意思。我的计算机 (MacOS) 上安装了 3.6.4,但它无法运行。 我想不出任何解决办法,也不知道该怎么办。 最佳答案 无论您是在 Mac 还是 Linux 上,答案
我通过 pyenv 安装了 3.8.2,但我想在本地机器上升级到 3.8.3,以匹配我们在生产中使用的版本。 $ pyenv install 3.8.3 python-build: definit
我正在使用 Ubuntu 16.4 我安装了 pyvenv 和 pyenv 的依赖项, 经过 su sudo apt-get install -y make build-essential libs
TLDR 我无法使用 pyenv-win 安装 3.6.10,只能安装 3.6.8 ref . 虽然我无法使用pyenv global让它成为全局python版本ref 详细信息 我按照指导安装了 p
TLDR 我无法使用 pyenv-win 安装 3.6.10,只能安装 3.6.8 ref . 虽然我无法使用pyenv global让它成为全局python版本ref 详细信息 我按照指导安装了 p
尝试根据指南安装 pyenv-win 模块:https://github.com/pyenv-win/pyenv-win/blob/master/README.md 但我是 Windows 中的命令提
我已经使用 pyenv 将近两年了,在 X11 模式下运行 RHEL 8.3(Linux 内核 4.18)和 Gnome 3.32.2 的系统上没有任何问题。我主要使用 fish shell ,但偶尔
我在一个漫长而复杂的管道中使用snakemake,它涉及一些外部编写的python2脚本。当我尝试使用 pyenv 指定 python2 时,pyenv shell命令失败,而 pyenv globa
问题: 我在 Windows 10 计算机上使用 python 2.7。 当我运行时 pip install pyenv 我收到如下所示的错误。 这是我遇到的唯一一个无法成功安装的 pip 模块。我不
我在我的环境中安装了 pyenv,直到本周末(当我安装“Kivy”时)我的 pyenv/本地设置一直运行良好。但是现在当我转到我的各种 python 项目目录时,pyenv 不会自动正确激活正确的 p
如何与其他用户一起使用pyenv? 例如,如果我在用户测试环境中安装了 pyenv,我可以在以测试身份登录时使用 pyenv。 但是,当我以其他用户(例如 root)登录时,如何使用 pyenv? 最
我正在使用 pyenv 和 virtualenvwrapper。 为了使用 virtualenvwrapper(没有 pyenv),我在我的 .bash_profile source/usr/loca
我已经安装了 pyenv,但是它没有执行最基本的功能,即切换 Python 版本。以下终端命令演示了这一点。 the file `main.py` is equivalent to: import s
我正在关注 tutorial在 ubuntu 20.04 上设置火炬时,一行需要设置 pyenv这就像 python 的 virtualenv,所以我可以运行多个版本的 python。有点不必要,但这
我用 pyenv virtualenv 3.5.9 projectname 创建了一个虚拟环境用于开发 Django 项目。 如何为我的代码设置环境变量以供使用? 我试图在 /Users/develo
我有一个 shell 服务器,由从事自己项目的研究人员占用,他们拥有自己所需的 python 版本和 python 库。虽然有很多重叠,特别是在所需的 python 版本中,我发现我们在主目录中浪费了
我在我的终端看到这个: gyp ERR! stack pyenv: python2: command not found gyp ERR! stack gyp ERR! stack The `pyth
如何使用 .file 指定 pyenv-virtual env,以便当我 cd 到目录时,我会自动获得正确的 pyenv 并选择正确的 virtualenv。 最佳答案 Pyenv 环境可以使用 .p
我是一名优秀的程序员,十分优秀!