乐趣区

关于python:Python-虚拟环境项目的启动从隔离开发环境开始

前言

在理论我的项目开发中,通常会依据本人的需要去下载各种相应的框架或库。

然而,每个我的项目应用的框架或库并不一样,甚至版本也不一样。这样如果间接在 Python 环境中装置各种各样的库,就会造成开发环境的凌乱,引起很多不必要的麻烦。

因而,这种状况就须要虚拟环境来进行开发环境的隔离,没一个虚拟环境对应一个我的项目,方便管理。

路漫漫兮其修远兮,吾将上下而求索!


一、Python虚拟环境列举

Python创立虚拟环境的形式有很多总,包含:venvvirtualenvcondapipenvpoetry等。

阐明:

  • venvPython3.5+自带,官网文档
  • virtualenvpipenv:通过 pip 装置
  • conda:官网下载,装置
  • poetry:装置办法参考官网,也可通过 pip 装置

二、不同虚拟环境的简要比照

2.1 poetrypipenv

poetrypipenv,这两个相似,是Python 虚拟环境和依赖管理工具;poetry还提供了包治理性能,比方打包和公布。

2.2 venvvirtualenv

poetrypipenv,这两个相似,操作形式对老手来说更容易上手。

2.3 Anaconda

Anaconda 提供了在单台机器上执行 Python/R 数据迷信和机器学习的最简略办法。立刻开始应用数以千计的开源包和库。(官网介绍)

因而,对于数据迷信和机器学习的环境来说,能够优先选择Anaconda

以下内容次要介绍我用过的 poetryvenvvirtualenv

二、实际测验真谛

2.1 更好的抉择:poetry(举荐)

官网文档:https://python-poetry.org/

2.1.1 装置poetry

官网举荐装置办法:

  • Linux/MacOS

    curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
  • Windows

    # PowerShell
    (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -

装置实现后,查看(终端):poetry -V

2.1.2 根本应用

# 初始化,在当前目录(我的项目根目录)创立 pyproject.toml 文件
poetry init

# 查看以后所应用的环境
poetry env info

# 指定应用 python(如果不指定,将应用环境变量的 python;可不指定)poetry env use /path/python

# 增加依赖
poetry add package
poetry add package@^3.2.13
poetry add package -D # 开发依赖
poetry add package --optional # 可选依赖

# 更新依赖(非必要,个别不应用)poetry update
poetry update package

# 如果手动批改了 pyproject.toml 中依赖,须要更新 lock 文件
poetry lock

# 进入虚拟环境
poetry shell

# 不进入虚拟环境也可进行操作
poetry run python manage.py runserver

2.2 最简略的操作:venv & virtualenv

2.2.1 venv根本应用

# 创立虚拟环境
python -m venv venv

# 进入虚拟环境
# Windows
venv\Scripts\activate
# Linux/MacOS
source venv/bin/activate

# 装置依赖
pip install package
pip install package==3.2.13

# 退出虚拟环境
# Windows
venv\Scripts\deactivate
# Linux/MacOS
deactivate

2.2.2 virtualenv根本应用

在应用 PyCharm 时,也可应用 virtualenv 创立虚拟环境,操作简略。

软件工具栏:File – Settings – Project – Python Interpreter – 设置按钮()– Add。

在增加 Python 虚拟环境(Add Python Interpreter)时,须要设置的仅有Location(虚拟环境寄存的目录,个别是我的项目根目录),Base interpreter(抉择 Python 解释器,找到 Python 的装置目录,默认应用环境变量中的 Python)

三、举荐 poetry 理由

晚期在应用 PyCharm 时,始终用的是通过(PyCharm)virtualenv创立的虚拟环境;我的项目部署时应用的是 venv 创立的虚拟环境。

以上计划整体上说,用起来还是很不便的,然而会存在一些问题。

  • 装置依赖的版本不固定,对于存在依赖大版本更新的状况下,我的项目可能会无奈失常运行。
  • 开发环境与生产环境的依赖辨别问题。之前应用 base.txtdev.txtprod.txt 对依赖进行辨别。
  • 如果应用 pip freeze 会导出很多从属依赖,造成文件的不可读。

因而,以前创立依赖文件时,是在减少依赖时,同时增加装置的指定版本到 requirements.txt(base.txtdev.txtprod.txt)文件中。

应用 poetry 之后,以上问题都很好的失去了解决。并且还蕴含了打包和公布性能。

总结

虚拟环境的应用,是我的项目开发的根底,应用哪种虚拟环境,能够依据本人的理论状况进行抉择。

最近有理解到一个新的包管理工具 PDM(Python Development Manager),据说是一个更厉害的工具,并且这是一个国人开发的工具。

之后有工夫会对这个工具的应用做一个理解,这应该是一个很好的工具。

有趣味的敌人们,也能够尝试尝试这个工具。

退出移动版