Python3.3在其标准库中包含新的包venv
。它是做什么的,它与似乎与regex(py)?(vvirtualpip)?env
匹配的所有其他包有什么不同?
这是我个人对初学者的建议:从学习virtualenv
和pip
这两种工具开始,这两种工具都可以在Python2和3中使用,并且可以在各种情况下使用,一旦您开始需要其他工具,就可以使用它们。
virtualenv
是一个非常流行的工具,它为Python库创建独立的Python环境。如果您不熟悉此工具,我强烈建议您学习它,因为它是一个非常有用的工具,我将在本答案的其余部分与它进行比较。它的工作方式是在一个目录(例如:env/
)中安装一组文件,然后修改path
环境变量,为其加上自定义的bin
目录(例如:env/bin/
)。Python
或python3
二进制文件的精确副本被放置在这个目录中,但是Python被编程为首先在environment目录中查找与其路径相关的库。它不是Python标准库的一部分,但得到了PyPA(Python Packaging Authority)的正式支持。激活后,您可以使用pip
在虚拟环境中安装包。
>
pyenv
用于隔离Python版本。例如,您可能希望针对Python2.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
的一组扩展(请参阅文档)。它为您提供了诸如mkvirtualenv
、lssitePackages
等命令,特别是用于在不同virtualenv
目录之间切换的workon
。如果您想要多个virtualenv
目录,此工具特别有用。
pyenv-virtualenvwrapper
是pyenv
的一个插件,作者与pyenv
作者相同,可以方便地将virtualenvwrapper
集成到pyenv
中。
pipenv
旨在将pipfile
、pip
和virtualenv
组合为命令行上的一个命令。virtualenv
目录通常放在~/.local/share/virtualenvs/xxx
中,其中xxxx
是项目目录路径的哈希。这与virtualenv
不同,virtualenv
中的目录通常位于当前工作目录中。pipenv
用于开发Python应用程序(与库相反)。还有pipenv
的替代方法,例如poice
,我在这里不列出,因为这个问题只是关于命名类似的包。
>
pyvenv
是Python3附带的脚本,但在Python3.6中不推荐使用,因为它存在问题(更别提令人困惑的名称)。在Python 3.6+中,其确切等价物是python3-m venv
。
venv
是Python3附带的一个包,您可以使用python3-m venv
来运行该包(尽管出于某种原因,一些发行版将其分离到一个单独的发行版包中,例如Ubuntu/Debian上的python3-venv
)。它的作用与virtualenv
相同,但只有其特性的一个子集(参见此处的比较)。virtualenv
仍然比venv
更受欢迎,特别是因为前者同时支持Python2和3。
问题内容: Python 3.3在其标准库中包含了新软件包。它有什么作用?与似乎与匹配的所有其他软件包有何不同? 问题答案: PyPI软件包不在标准库中: 是一个非常流行的工具,可为Python库创建隔离的Python环境。如果你不熟悉此工具,我强烈建议你学习它,因为它是非常有用的工具,在本答案的其余部分中,我将对其进行比较。 它的工作原理是在目录(例如:)中安装一堆文件,然后修改PATH环境变量
问题内容: 我是一个试图学习python的红宝石程序员。我很喜欢pyenv,因为它就像是rbenv的复制和粘贴。Pyenv帮助在系统中拥有多个版本的python,并且在不接触系统敏感部分的情况下隔离python。 我想每个python安装都带有pip包。我仍然不明白的是,有很多好的python库建议使用此virtualenv和anaconda。我什至可以找到pyenv的virtualenv插件。
问题内容: 我最近学习了如何在工作流程中使用virtualenv和virtualenvwrapper,但是我在一些指南中看到了pyenv,但是我似乎无法理解pyenv是什么以及它与virtualenv有何不同/相似。pyenv是virtualenv的更好/更新的替代品还是免费的工具?如果后者有什么不同之处,以及两者(以及适用的virtualenvwrapper)如何一起工作? 问题答案: Pyen
问题内容: 之间有什么区别: 和 和 问题答案: 注意事项 : 这个答案仅涵盖了系列和系列之间的时序差异。。 为了这个答案的目的,我将使用一些示例方法: 是一个函数,它需要一个整数毫秒,并返回一个承诺,该承诺将在该毫秒后解析。 是一个函数,它需要一个整数毫秒,并返回一个承诺,该承诺将在该毫秒后被拒绝。 调用将启动计时器。在所有延迟完成后,可以使用等待一些延迟来解决,但请记住它们是同时执行的: 例子
问题内容: 之间有什么区别: 和 和 问题答案: 注意事项: 这个答案仅涵盖了await系列和系列之间的时序差异Promise.all。请务必阅读@mikep的综合答案,其中也涵盖了错误处理方面更重要的区别。 出于此答案的目的,我将使用一些示例方法: res(ms) 是一个函数,它需要一个整数毫秒,并返回一个承诺,该承诺将在该毫秒后解析。 rej(ms) 是一个函数,它需要一个整数毫秒,并返回一个
问题内容: 自从我再次开始使用Java进行编程以来,我就一直在使用HashMaps,而实际上并没有真正理解这些Collections的知识。 老实说,我不确定完全使用HashMaps是最适合我还是生产代码。到目前为止,对我而言,只要我能够获取需要用PHP调用它们的方式的数据对我来说都没关系(是的,我承认您现在正在考虑的任何负面想法)在哪里提供了极大的方便回忆变量数组。 所以现在,我已经使用Java