我们在开始一个Python项目,而不是几行简单的代码时,我们倾向于开始使用第三方的dependencies.当项目越来越大时,我们需要考虑如何有效的管理这些第三方库 。当安装第三方库时,我们肯定是想安装在虚拟环境中 。帮助我们保持我们实际系统环境的干净,避免打乱整个系统python环境 。
我们为什么需要python的虚拟环境?我们可以使用pip把第三方库安装到python项目中 。一个项目中往往要安装多个,鉴于安装的第三方库的各种版本,可能会导致一些兼容和运行的问题 。
当我们在python项目中使用pip install <package name>,我们是安装到全局python下的,将会根据现有的python版本安装第三方包 。
我们可以通过以下命令来查找python的安装目录:
python -c "import sys;print('n'.join(sys.path))"输出:C:UsersAdministrator.*AppDataLocalProgramsPythonPython36python36.zipC:UsersAdministrator.*AppDataLocalProgramsPythonPython36DLLsC:UsersAdministrator.*AppDataLocalProgramsPythonPython36libC:UsersAdministrator.*AppDataLocalProgramsPythonPython36C:UsersAdministrator.*AppDataLocalProgramsPythonPython36libsite-packages
如果我们使用pip3 install <package name>,将会安装到python3安装目录的单独的目录下 。我们可以用以下命令来覆盖pip3这个命令:
python2.7 -m pip install <package name>
但是这仍然解决不了我们在全局python下安装第三方库的问题,将会出现下列的问题:
- 不同python项目之间会使用不同版本的第三方库,可能会导致互相冲突
- 项目的依赖库和操作系统的依赖库会产生冲突,导致出现项目错误或系统错误 。
- 多用户项目将很难实现 。
- 不同版本python和库的代码测试将会是一个挑战
如何创建一个虚拟环境确保你的系统上已经安装python
python --version
然后看一下pip是否也能正常调用pip --version
【如何为python项目创建虚拟环境】我们需要一个工具来创建python的虚拟环境,venv 。它是封装在python3.3+版本以上的python中的 。如果我们使用python2,我们需要手动安装一个工具 。这是为数不多的一个我们需要全局安装的第三方库 。
python2 -m pip install virtualenv
注意:我们将会在文章中讨论很多venv和python3,操作系统环境不同,可能会导致某些命令的些许不同,某些工具的工作原理也些许不同 。如果你的系统上没有安装pip:
sudo apt-get install python-pip然后安装virtualenvpip install virtualenv
我们首先要为项目创建一个文件夹,并进入这个文件夹:mkdir my-python-project && cd my-python-project
然后我们再创建虚拟环境:python3 -m venv virtualenv#创建一个名为virtualenv的虚拟环境给,可以是任何名字
这将会创建一个名为virtualenv的目录,这个目录将会包含bin、lib、include文件夹,还有一个环境配置文件 。所有的文件都是为了确保,所有的代码都运行在当前的虚拟环境下 。这会帮我们把工作环境和操作系统环境隔离开来,避免我们之前提到的问题 。
为了使用这个虚拟环境,我们需要激活它 。激活以后,还会更改我们的命令提示符标志 。这个标志也是为了表明虚拟环境已经激活,python的代码都是在这个环境下执行 。
#UBUNTU linux系统激活虚拟环境$ source env/bin/activate(virtualenv) $
#windows激活虚拟环境E:my-python-projectvirtualenvScripts>activate(virtualenv)E:my-python-projectvirtualenvScripts>activate
在虚拟环境下,无法访问使用全局的第三方库,在虚拟环境内安装的库也无法在外部使用 。在虚拟环境中,只有pip和setuptools是默认安装的 。
激活虚拟环境后,变量path也会相应地发生改变,以达到虚拟环境的目的 。
当我们完成工作,想切换回操作系统的全局环境,我们需要使用deactivate退出虚拟环境 。
#linux ubuntu下(virtualenv) $ deactivate $#windows系统下(virtualenv) E:my-python-projectvirtualenvScripts>deactivateE:my-python-projectvirtualenvScripts>
如何管理虚拟环境下的第三方库我们配置了虚拟环境并激活以后,我们不想在分享项目时,连同使用pip install命令安装的第三方库也一起分享 。我们想去除我们的虚拟环境文件夹,但仍然可以在其他的电脑或系统上重新运行我们的工作 。
推荐阅读
- 实用炫酷!这样写Python代码四两拨千斤
- 如何给公司搭建免费的NAS共享-FREENAS篇
- Django项目部署到服务器
- 如何更新win11?win11相关常见问答解答
- MySQL for macOS如何调出命令行客户端MySQL Command Line Client
- windows AD域_如何实现企业AD域高效,高质管理?
- 浅表性胃炎吃啥水果好,浅表性胃炎的症状有哪些如何养胃好
- 如何格式化新买回来的硬盘
- Springboot默认的错误页是如何工作及工作原理你肯定不知道?
- 如何绕过WAF和本地防火墙双重防护?