共计 2395 个字符,预计需要花费 6 分钟才能阅读完成。
前言
在理论我的项目开发中,通常会依据本人的需要去下载各种相应的框架或库。
然而,每个我的项目应用的框架或库并不一样,甚至版本也不一样。这样如果间接在 Python
环境中装置各种各样的库,就会造成开发环境的凌乱,引起很多不必要的麻烦。
因而,这种状况就须要虚拟环境来进行开发环境的隔离,没一个虚拟环境对应一个我的项目,方便管理。
路漫漫兮其修远兮,吾将上下而求索!
一、Python
虚拟环境列举
Python
创立虚拟环境的形式有很多总,包含:venv
、virtualenv
、conda
、pipenv
、poetry
等。
阐明:
venv
:Python3.5+
自带,官网文档virtualenv
、pipenv
:通过pip
装置conda
:官网下载,装置poetry
:装置办法参考官网,也可通过pip
装置
二、不同虚拟环境的简要比照
2.1 poetry
、pipenv
poetry
和 pipenv
,这两个相似,是Python
虚拟环境和依赖管理工具;poetry
还提供了包治理性能,比方打包和公布。
2.2 venv
、virtualenv
poetry
和pipenv
,这两个相似,操作形式对老手来说更容易上手。
2.3 Anaconda
Anaconda 提供了在单台机器上执行 Python/R 数据迷信和机器学习的最简略办法。立刻开始应用数以千计的开源包和库。(官网介绍)
因而,对于数据迷信和机器学习的环境来说,能够优先选择Anaconda
。
以下内容次要介绍我用过的 poetry
、venv
和virtualenv
。
二、实际测验真谛
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.txt
、dev.txt
、prod.txt
对依赖进行辨别。 - 如果应用
pip freeze
会导出很多从属依赖,造成文件的不可读。
因而,以前创立依赖文件时,是在减少依赖时,同时增加装置的指定版本到 requirements.txt(base.txt
、dev.txt
、prod.txt
)文件中。
应用 poetry
之后,以上问题都很好的失去了解决。并且还蕴含了打包和公布性能。
总结
虚拟环境的应用,是我的项目开发的根底,应用哪种虚拟环境,能够依据本人的理论状况进行抉择。
最近有理解到一个新的包管理工具 PDM(Python Development Manager),据说是一个更厉害的工具,并且这是一个国人开发的工具。
之后有工夫会对这个工具的应用做一个理解,这应该是一个很好的工具。
有趣味的敌人们,也能够尝试尝试这个工具。