大家好,我是明哥。当我介绍一些管理Python虚拟环境的工具,比如pipenv、virtualenv等时,总有读者留言,希望我能写出一整集的诗篇。在接触诗歌之前,我以为pipenv已经是我心目中最理想的虚拟环境工具了,直到19年看了@李辉的一篇文章(http://greyli.com/do-not-use-pipenv/)让我开始动摇了。我一直在轻度使用,从来没有感觉到pipenv的各种问题。不知道经过几年的发展,pipenv有没有进步?不过我想,对于那些深受其害的用户来说,可能已经把诗投怀送抱了。话不多说,我们直接上干货。#1.安装诗歌诗歌提供了多种安装方式。个人推荐选择以下两种方式:方式一:(推荐)使用在线脚本安装,最推荐的安装方式是$curl-sSLhttps://raw.githubusercontent。com/python-poetry/poetry/master/get-poetry.py|Python方法二:(pip)官方不推荐这个,因为可能会造成依赖冲突,安装后可以考虑使用pipx或者pipsi$pipinstall--userpoetry,可以使用如下命令查看是否可用$poetry--versionPoetryversion1.1.4#2.创建项目如果在已有项目中使用Poetry,只需要执行poetryinit命令创建一个pyproject。toml文件:$poetryinit而如果是新建工程,可以使用这个命令$poetrynewdemo-priject运行后,当前目录下会有一个demo-project目录,该目录下的文件结构如下$treedemo-prijectdemo-priject├──README.rst├──demo_project│└──__init__.py├──pyproject.toml└──tests├──__init__.py└──test_demo_priject.py如果你想把项目代码放到src目录下,创建工程,可以加上--src参数。#3.创建虚拟环境使用poetryinstall命令创建虚拟环境(确保当前目录下有pyproject.toml文件):$poetryinstall该命令会读取pyproject.toml中的所有依赖(包括开发依赖)并安装它们,如果您不想安装开发依赖项,可以附加--no-dev选项。如果项目根目录下有poetry.lock文件,则将安装该文件中列出的依赖项的锁定版本。如果执行添加/删除命令时没有检测到虚拟环境,则会自动为当前目录创建一个虚拟环境。#4.使用虚拟环境创建虚拟环境后,如果想在虚拟环境中执行命令,比如执行脚本,使用piplist等。您可以在项目目录中使用以下命令$poetryrun
