何时使用虚拟环境的唯一目录?哪个
推荐选项?为什么?
每个虚拟环境都“存在”在其自己的文件夹中。您安装的所有软件包都将转到那里,特别是如果每个环境都有不同的 Python 版本。
我应该如何安装上面列出的每个项目包?
创建项目环境后切换到项目环境时,请参阅下面我的原始答案。所有安装的软件包都将专门安装到您当前正在使用的虚拟环境中。
您始终可以通过键入来检查当前正在使用哪个 Python 解释器
which python
在终端中,您当前已激活项目环境。此外您还可以检查
which pip
确保您是否正在使用pip install somepackage
您的目标是正确的 Python 解释器。如果你想固定包裹,你可以这样做
pip freeze > requirements.txt
任何时候,当前安装的软件包及其版本都将写入文本文件requirements.txt
。您现在始终可以使用以下命令创建新环境
pip install -r requirements.txt
我应该使用 virtualenvwrapper 吗?
我总是在每个项目的虚拟环境中工作,因此可能使用特殊包的某些固定版本的其他项目不会受到影响。
如何在项目之间切换(更改Python/虚拟环境
在此过程中)轻松还是无痛?
您可以在您的中定义一个别名~/.bashrc 文件 https://en.wikipedia.org/wiki/Bash_(Unix_shell)#Legacy-compatible_Bash_startup_example or ~/.bash_aliases
。在终端中,打开(在我的示例中)~/.bashrc
使用文本编辑器,例如Vim https://en.wikipedia.org/wiki/Vim_%28text_editor%29/nano https://en.wikipedia.org/wiki/GNU_nano或您喜欢的一项:
nano ~/.bashrc
在靠近末尾的地方,您可以添加一行带有别名的行,以切换到项目目录并同时激活环境:
alias activate_proj1="cd ~/project_1 && pyenv activate venv_project_1"
所以你只需输入activate_proj1
在终端中(制表符补全也可以)并且两个命令都被执行。更改某些内容后,不要忘记再次获取 bash 文件source ~/.bashrc
或者只是打开一个新终端。
原答案:
pyenv
将处理您需要的一切:
我的工作流程(针对一个项目以使其更具可读性)如下:
pyenv install 3.5.1
cd python_projects
mkdir myproject
cd myproject
pyenv virtualenv 3.5.1 venv_myproject
之后,您可以简单地激活由以下命令创建的virtualenvpyenv
using
pyenv activate venv_myproject
这将打开您独特的环境。在这里您可以做所有您想做的事情,例如,使用 pip 等安装软件包。
完成环境设置后,您可以冻结环境并创建需求文件:
pip freeze > requirements.txt
如果需要的话能够重建环境。这样,所有可能需要的开销(设置 PATH 等)都将由 pyenv 处理。
如果您想从事不同的项目,只需激活您需要的环境即可开始!
请注意,您可以使pyenv激活虚拟环境 https://github.com/pyenv/pyenv-virtualenv#activate-virtualenv当你cd
终端中的文件夹,将其名称放入您的.python-version
文件也是如此。