当前位置: 首页>>技术教程>>正文


如何在Ubuntu中设置和使用虚拟python环境?

, , ,

问题描述

Python虚拟环境用于创建隔离的python环境,以避免依赖和版本冲突,并间接处理权限问题。但是在Ubuntu中设置和使用它的最简单方法是什么?

最佳解决思路

使用virtualenvwrapper(virtualenv功能的用户友好包装)

安装virtualenv

安装virtualenv

sudo apt-get install virtualenv

(对于Ubuntu 14.04(可信)安装python-virtualenv)

安装virtualenvwrapper

我们还安装virtualenvwrapper的原因是它提供了很好的简单命令来管理您的虚拟环境。有两种方法可以安装virtualenvwrapper

作为Ubuntu包(来自Ubuntu 16.04)

sudo apt install virtualenvwrapper

然后运行

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

用pip

  1. 安装和/或更新点子

    用Python安装pip for Python

    sudo apt-get install python-pip
    

    或者用于Python 3

    sudo apt-get install python3-pip
    

    (如果使用Python 3,则可能需要在本指南的其余部分中使用pip3而不是pip)。

    可选(但推荐):为pip启用bash自动完成功能

    pip completion --bash >> ~/.bashrc
    

    并运行source ~/.bashrc以启用。

  2. 安装virtualenvwrapper

    因为我们想要避免使用sudo pip,所以我们在本地安装virtualenvwrapper(默认情况下在~/.local下):

    pip install --user virtualenvwrapper
    

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
    
  3. 源代码virtualenvwrapper在.bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
    

设置virtualenv和virtualenvwrapper:

首先,我们导出WORKON_HOME变量,该变量包含存储虚拟环境的目录。让我们来制作这个~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

现在也创建这个目录

mkdir $WORKON_HOME

并将此导出放在我们的~/.bashrc文件中,以便自动定义此变量

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

我们还可以像下面这样添加一些extra tricks,这样可以确保如果pip创建了一个额外的虚拟环境,它也会放在我们的WORKON_HOME目录中:

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

源〜/.bashrc加载更改

source ~/.bashrc

测试它是否有效

现在我们创建第一个虚拟环境。 -p参数是可选的,它用于设置要使用的Python版本;例如,它也可以是python3

mkvirtualenv -p python2.7 test

您将看到将设置环境,并且您的提示现在在括号中包含活动环境的名称。如果你现在跑了

python -c "import sys; print sys.path"

你应该看到很多/home/user/.virtualenv/...,因为它现在不使用你的系统site-packages。

您可以通过运行来停用您的环境

deactivate

如果你想再次使用它,只需输入

workon test

最后,如果要删除环境,请键入

rmvirtualenv test

请享用!


感谢this blogpost的作者。

次佳解决思路

虚拟环境提供了一种管理和隔离per-project依赖关系的方法。此外,它们还避免了整个sudo pip install情况,这是一个安全风险,正如我在https://askubuntu.com/a/802594/15003中所解释的那样。官方Python文档也是encourages the use of virtual environments

为Python 2和Python 3创建和使用虚拟环境的最简单方法是使用apt或apt-get安装virtualenv。对于每个Python项目,创建一个virtualenv然后激活它。请注意,virtualenv特定于特定的Python版本。激活后,无论您使用的是Python 2还是3,都可以像往常一样使用pip来安装Python软件包;没有必要使用pip3 for Python 3. sudo仅用于安装virtualenv并且不与pip一起使用,因此避免了上述安全风险。这样做的命令是:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

如果您想为Python 3创建virtualenv,请将virtualenv venv替换为:

virtualenv venv -p python3

https://virtualenv.pypa.io/en/stable/上阅读更多关于virtualenv的各种铃声和口哨声。

第三种解决思路

这很容易,你安装python-virtualenv。然后,您可以使用virtualenv命令创建virtualenv。有关更多信息,请参阅their documentation

第四种思路

使用Python 3.3(和Ubuntu 15.10)提供的venv module

虚拟环境(venvs)如此受欢迎,以至于功能现在包含在python本身中(从3.3开始)。要在Ubuntu上使用它,您需要安装python3-venv(因为ensurepip模块不可用):

sudo apt-get install python3-venv

之后你可以使用

pyvenv myvirtualenv

创建一个名为myvirtualenv的虚拟环境。然后你可以使用

source myvirtualenv/bin/activate

激活虚拟环境。要停用,只需输入

deactivate

编辑:pyvenv脚本已被弃用,转而使用python3 -m venv。这可以避免混淆Python解释器pyvenv连接到什么,从而虚拟环境将使用什么Python解释器。 (source)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1127.html,未经允许,请勿转载。