08 Pipenv和Python包管理 明希Python的依赖管理及Pipenv @frostming 我是谁? • 研发效能·持续集成@Tencent • 从 2014 年开始用 Python,前测试,现开发 • 开源爱好者 • Pipenv 维护者之一 队长别开枪,是我! 目录 CONTENTS 为什么需要虚拟环境 为什么需要依赖管理 Pipenv 的简单使用 Python 包管理的未来 为什么需要虚拟环境 你是否遇到过这些问题: • virtualenvwrapper • pew • pyenv-venv • conda • direnv • ... pip ? + 我们为什么需要依赖管理 pip 是否已经足够使用? 它的依赖管理有什么问题? 碰到这些问题,该怎么办? 依赖冲突 $ pip install celery django-celery $ pip install celery $ pip (piptools) • Poetry • 没了 可用工具 Pipenv 的简单使用 • 自动创建、管理虚拟环境,与项目绑定 • 依赖解析、锁定 • 新的requirements.txt规范,基于TOML格式 • 优美的命令行界面 Pipenv Demo Python 包管理的未来 Python 包管理的未来 PEP 517 – 与构建系统无关的配置文件格式 PEP 518 – 在指定Python构建依赖0 码力 | 24 页 | 1.24 MB | 1 年前3
Django 官方教程翻译项目《Django 官方教程翻译项目》 由 进击的皇虫 使用 书栈(BookStack.CN) 进行 构建,生成于 2018-05-25。 书栈(BookStack.CN) 仅提供文档编写、整理、归类等功能,以及对文档内容的生成和导出工 具。 文档内容由网友们编写和整理,书栈(BookStack.CN) 难以确认文档内容知识点是否错漏。如 果您在阅读文档获取知识的时候,发现文档内容有不恰当的地方,请向我们反馈,让我们共同携手, [==========] 100/100 欢迎一切有时间有能力的小伙伴一起来翻译。 流程: 1. 到任务大厅认领任务。 中文版文档 翻译进度 我也想一起翻译 README - 4 - 本文档使用 书栈(BookStack.CN) 构建 2. 任务申请被接受后,Fork 本项目。 3. 仔细阅读 正在讨论中的画风设定集(我改改改改的累死了啊啊啊啊)。 4. 如果对上述草稿有话想说,请参与讨论。 6. PR。 README - 5 - 本文档使用 书栈(BookStack.CN) 构建 初识 Django 初识 Django 设计模型 创建模型 享用便捷的 API 动态生成的管理页面:并非徒有其表 规划 URL 编写视图 设计模板 这只是冰山一角 Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。以下 内容简要介绍了如何使用0 码力 | 103 页 | 1.86 MB | 1 年前3
Django、Vue 和Element UI 前后端原理论述后端依赖(pipenv)创建虚拟环境:建议使用 pipenv 来创建和管理虚拟环境,以便 隔离项目的依赖和环境。 后端服务配置启动:在虚拟环境下,通过 Django 的 manage.py 启动服务,例如:python manage.py runserver。 后端创建子应用:根据项目的需要,可以创建多个子应用(app)来管理不同的功能 模块。 后端 Rest Framework:使用 Django 。 确保依赖一致性:虚拟环境通常会配合使用 Pipenv 等工具来管理项目的依赖,这样 可以确保项目在不同环境中安装相同的依赖版本,从而避免由于依赖版本不一致而引发 的错误。 提高项目可移植性:将项目的依赖放在虚拟环境中,可以使得项目在不同的计算机 或服务器上都能轻松地部署和运行,而不需要担心依赖问题。 简化依赖管理:虚拟环境可以将项目所需的依赖以及其版本信息保存在一个文件中 (例如 赖的安装和管理更加 简单和自动化。 2、Pipenv 介绍 Pipenv 是 Python 的一个包管理工具和虚拟环境管理工具,它是为了解决 Python 项目 中依赖管理和虚拟环境创建的问题而开发的。Pipenv 结合了 pip(Python 的包管理工具) 和 virtualenv(Python 的虚拟环境管理工具)的功能,提供了更方便、更高级的包管理和 虚拟环境管理功能。 Pipenv0 码力 | 61 页 | 6.84 MB | 1 年前3
PyWebIO v1.3.1 使用手册put_markdown('**Coding**')) # insert the Coding into the top of the␣ �→hobby 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: with put_collapse('This is title'): for i in range(4): put_text(i) put_table([ put_table([ ['Commodity', 'Price'], ['Apple', '5.5'], ['Banana', '7'], ]) 支持上下文管理器的完整函数清单请见输出函数列表 事件回调 从上面可以看出,PyWebIO 把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显 示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式 'B', 'C'], onclick=btn_click) 注解: 在 PyWebIO 会话 (关于会话的概念见下文Server 与 script 模式 ) 结束后,事件回调也将不起作用,你可 以在任务函数末尾处使用pywebio.session.hold() 函数来将会话保持,这样在用户关闭浏览器页面前, 事件回调将一直可用。 输出域 Scope PyWebIO 使用 Scope 模型来对0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.3 使用手册put_markdown('**Coding**')) # insert the Coding into the top of the␣ �→hobby 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: with put_collapse('This is title'): for i in range(4): put_text(i) put_table([ put_table([ ['Commodity', 'Price'], ['Apple', '5.5'], ['Banana', '7'], ]) 支持上下文管理器的完整函数清单请见输出函数列表 事件回调 从上面可以看出,PyWebIO 把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显 示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式 'B', 'C'], onclick=btn_click) 注解: 在 PyWebIO 会话 (关于会话的概念见下文Server 与 script 模式 ) 结束后,事件回调也将不起作用,你可 以在任务函数末尾处使用pywebio.session.hold() 函数来将会话保持,这样在用户关闭浏览器页面前, 事件回调将一直可用。 输出域 Scope PyWebIO 使用 Scope 模型来对0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.2 使用手册put_markdown('**Coding**')) # insert the Coding into the top of the␣ �→hobby 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: with put_collapse('This is title'): for i in range(4): put_text(i) put_table([ put_table([ ['Commodity', 'Price'], ['Apple', '5.5'], ['Banana', '7'], ]) 支持上下文管理器的完整函数清单请见输出函数列表 事件回调 从上面可以看出,PyWebIO 把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显 示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式 'B', 'C'], onclick=btn_click) 注解: 在 PyWebIO 会话 (关于会话的概念见下文Server 与 script 模式 ) 结束后,事件回调也将不起作用,你可 以在任务函数末尾处使用pywebio.session.hold() 函数来将会话保持,这样在用户关闭浏览器页面前, 事件回调将一直可用。 输出域 Scope PyWebIO 使用 Scope 模型来对0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.0 使用手册put_markdown('**Coding**')) # insert the Coding into the top of the␣ �→hobby 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: with put_collapse('This is title'): for i in range(4): put_text(i) put_table([ put_table([ ['Commodity', 'Price'], ['Apple', '5.5'], ['Banana', '7'], ]) 支持上下文管理器的完整函数清单请见输出函数列表 事件回调 从上面可以看出,PyWebIO 把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显 示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式 'B', 'C'], onclick=btn_click) 注解: 在 PyWebIO 会话 (关于会话的概念见下文Server 与 script 模式 ) 结束后,事件回调也将不起作用,你可 以在任务函数末尾处使用pywebio.session.hold() 函数来将会话保持,这样在用户关闭浏览器页面前, 事件回调将一直可用。 输出域 Scope PyWebIO 使用 Scope 模型来对0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.7.1 使用手册put_widget() 来创建可以接受 put_xxx() 的自定义输出控 件。 接受 put_xxx() 调用作为参数的完整输出函数清单请见 输出函数列表 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: 支持上下文管理器的完整函数清单请见 输出函数列表 事件回调 popup('Popup title', [ put_html('Popup Content
') 通过URL中的路径来访问这些应用 了。 注意 注意,在Server模式下, pywebio.input 、 pywebio.output 和 pywebio.session 模块内的函数仅能在任务函数上下文中进行调用。比如如下 调用是 不被允许的 import pywebio from pywebio.input import input port = input('Input port 对新进程进行注册(这样PyWebIO才能知道 新创建的线程属于哪个会话)。如果新创建的线程中没有使用到PyWebIO的交 互函数,则无需注册。没有使用 register_thread(thread) 注册的线程不受会 话管理,其调用PyWebIO的交互函数将会产生 SessionNotFoundException 异 常。 Server模式下多线程的使用示例: def show_time(): while True:0 码力 | 151 页 | 7.47 MB | 1 年前3
PyWebIO v1.7.1 使用手册另外,你可以使用put_widget() 来创建可以接受 put_xxx() 的自定义输出控件。 接受 put_xxx() 调用作为参数的完整输出函数清单请见输出函数列表 上下文管理器 一些接受 put_xxx() 调用作为参数的输出函数支持作为上下文管理器来使用: with put_collapse('This is title'): for i in range(4): put_text(i) put_table([ put_table([ ['Commodity', 'Price'], ['Apple', '5.5'], ['Banana', '7'], ]) 支持上下文管理器的完整函数清单请见输出函数列表 事件回调 从上面可以看出,PyWebIO 把交互分成了输入和输出两部分:输入函数为阻塞式调用,会在用户浏览器上显 示一个表单,在用户提交表单之前输入函数将不会返回;输出函数将内容实时输出至浏览器。这种交互方式 URL 中的路 径来访问这些应用了。 注意: 注意,在 Server 模式下,pywebio.input 、pywebio.output 和 pywebio.session 模块内 的函数仅能在任务函数上下文中进行调用。比如如下调用是 不被允许的 import pywebio from pywebio.input import input port = input('Input port0 码力 | 127 页 | 1.73 MB | 1 年前3
Python 标准库参考指南 3.10.15 字典视图对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.11 上下文管理器类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.12 类型注解的类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.15.1 异常 . . . . . . . . . . . --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.20 码力 | 2207 页 | 10.45 MB | 9 月前3
共 180 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18













