Ger*_*ger 78 package-management python virtualenv
Python虚拟环境用于创建隔离的python环境,避免依赖和版本冲突,也间接处理权限问题。但是在 Ubuntu 中设置和使用它的最简单方法是什么?
Ger*_*ger 107
virtualenvwrapper
(用于 的功能的用户友好包装virtualenv
)安装virtualenv
使用
sudo apt install virtualenv
Run Code Online (Sandbox Code Playgroud)
我们还安装virtualenvwrapper的原因是它提供了很好且简单的命令来管理您的虚拟环境。有两种安装方式virtualenvwrapper
:
跑
sudo apt install virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
然后运行
echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
安装和/或更新 pip
为 Python 2 安装 pip
sudo apt install python-pip
Run Code Online (Sandbox Code Playgroud)
或 Python 3
sudo apt install python3-pip
Run Code Online (Sandbox Code Playgroud)
(如果您使用 Python 3,您可能需要在本指南的其余部分使用pip3
而不是使用pip
)。
可选(但推荐):为 pip 打开 bash 自动完成
跑
pip completion --bash >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
并运行source ~/.bashrc
以启用。
安装 virtualenvwrapper
因为我们想避免sudo pip
virtualenvwrapper
在本地安装(默认在 下~/.local
):
pip install --user virtualenvwrapper
Run Code Online (Sandbox Code Playgroud)
和
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)源 virtualenvwrapper 在 .bashrc
echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)首先,我们导出WORKON_HOME
包含要存储虚拟环境的目录的变量。让我们做这个~/.virtualenvs
export WORKON_HOME=~/.virtualenvs
Run Code Online (Sandbox Code Playgroud)
现在也创建这个目录
mkdir $WORKON_HOME
Run Code Online (Sandbox Code Playgroud)
并将此导出放入我们的~/.bashrc
文件中,以便自动定义此变量
echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
我们还可以添加一些额外的技巧,如下所示,确保如果pip
创建额外的虚拟环境,它也会放在我们的WORKON_HOME
目录中:
echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
源 ~/.bashrc 加载更改
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
测试它是否有效
现在我们创建我们的第一个虚拟环境。该-p
参数是可选的,用于设置要使用的 Python 版本;它也可以python3
是例如。
mkvirtualenv -p python2.7 test
Run Code Online (Sandbox Code Playgroud)
您将看到环境将被设置,并且您的提示现在包括括号中的活动环境的名称。另外,如果你现在运行
python -c "import sys; print sys.path"
Run Code Online (Sandbox Code Playgroud)
您应该看到很多,/home/user/.virtualenv/...
因为它现在不使用您的系统站点包。
您可以通过运行来停用您的环境
deactivate
Run Code Online (Sandbox Code Playgroud)
如果你想再次处理它,只需输入
workon test
Run Code Online (Sandbox Code Playgroud)
最后,如果你想删除你的环境,输入
rmvirtualenv test
Run Code Online (Sandbox Code Playgroud)
享受!
感谢这篇博文的作者。
虚拟环境提供了一种在每个项目的基础上管理和隔离依赖项的方法。此外,他们还避免了整个sudo pip install
情况,正如我在https://askubuntu.com/a/802594/15003 中解释的那样,这是一种安全风险。官方 Python 文档也鼓励使用虚拟环境。
为 Python 2 和 Python 3 创建和使用虚拟环境的最简单方法是virtualenv
使用apt
或进行安装apt-get
。对于每个 Python 项目,创建一个 virtualenv,然后激活它。请注意,virtualenv 特定于特定的 Python 版本。激活后,pip
无论您使用的是Python 2还是3,都可以照常安装Python包;pip3
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
Run Code Online (Sandbox Code Playgroud)
如果您想为 Python 3 创建一个 virtualenv,请替换virtualenv venv
为:
virtualenv venv -p python3
Run Code Online (Sandbox Code Playgroud)
virtualenv
在https://virtualenv.pypa.io/en/stable/阅读更多关于各种花里胡哨的信息。
归档时间: |
|
查看次数: |
135959 次 |
最近记录: |