”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Mac OS X 上的 Python 项目创建

Mac OS X 上的 Python 项目创建

发布于2024-11-09
浏览:927

介绍

PyFabricate 是一款 Mac OS X 应用程序,可简化 Python 项目的创建。 自从我创作它以来,显然它是我认为 Python 项目应该是什么样子的一个固执己见的版本。 此外,我还有一个特定的工具集,可以用来编写 Python Mac OS X 应用程序。 但是,我尝试通过公开创建项目文件的模板来创建一些自定义。 稍后详细介绍。

概述

PyFabricate 使用类似向导的界面来查询项目详细信息。

自以为是的假设

  • 开发人员使用 HomeBrew 安装固执己见的依赖项。

    • Python 通过 pyenv 进行管理(用于创建的虚拟环境)
    • direnv 已安装(可选)
  • 项目名称与模块包名称相同

安装

从此处获取当前版本。

将此文件复制到您的 Mac OS 应用程序文件夹。 该应用程序是 Apple 代码签名的,因此您将收到一条简单的消息,您必须在第一次执行它时确认。

项目骨架详细信息

以下是 PyFabricator 创建的初始骨架的示例。 它现在确实显示了它创建的虚拟环境。 稍后详细介绍。

Python Project Creation on Mac OS X

本质上,PyFabricate 创建 src 和测试目录。 在项目根目录中它创建以下文件:

  • .envrc
  • .gitignore
  • .mypi.ini
  • .python_version
  • 。执照
  • README.md
  • pyproject.toml
  • 要求.txt

此外,PyFabricate 在所有适当的位置创建所有 python 包文件 (__init__.py)。 最后,它放置了两组日志记录配置文件,一组用于您的应用程序,一组用于您的单元测试。

在制造结束时,PyFabricate 创建一个 Python 虚拟环境。由于技术限制,PyFabricate 无法使用 pyenv 版本的 Python 来创建虚拟环境。 因此,它取决于自制软件安装的版本。

向导界面

向导 UI 是一个 4 步过程,其中 PyFabricate 收集足够的项目详细信息,用于填充骨架模板。 这些模板使用以下不言自明的替换标记。

代币名称 描述
PROJECT_NAME 用于构造基础项目目录,是Python模块名称
描述 作为描述放置在生成的 pyproject.toml 中
OWNER_NAME 作为作者姓名和维护者姓名放置在生成的 pyproject.toml 中
OWNER_EMAIL 在生成的 pyproject.toml 中作为作者和维护者的电子邮件地址
关键字 用作生成的pyproject.toml中的项目关键字
PYTHON_VERSION 在生成的.gitignore文件中使用以排除包含虚拟环境的目录。 另外附加为生成的虚拟环境的目录名称。 例如,'pyenv-3.12.0'

以下是pyroject.toml模板的带注释的图形。

Python Project Creation on Mac OS X

向导 UI 步骤 1 - 简介

这一步是PyFabricate的介绍。 在此步骤之后,PyFabricate 会尽最大努力确保满足其执行依赖性。 如果不是,开发者无法继续执行此步骤。

Python Project Creation on Mac OS X

向导 UI 步骤 2 - 项目详细信息

在此步骤 PyFabricate 收集项目特定信息。 其中大部分用于填充 pyproject.toml 模板。

Python Project Creation on Mac OS X

向导 UI 步骤 3 - 基本目录

PyFabricate 假设开发人员将其所有 Python 项目保存在一个子目录中。 这是一种固执己见的观点,只是一种组织偏好。

Python Project Creation on Mac OS X

向导 UI 步骤 4 - Python 版本

PyFabricate 查询 pyenv 以获取开发人员安装的 Python 版本。 这些是 PyFabricate 可以创建 Python 虚拟环境的唯一环境。

Python Project Creation on Mac OS X

行动日志

在向导结束时,PyFabricate 在创建项目时会显示一个日志。 以下是示例日志。

Python Project Creation on Mac OS X

定制化

如前所述,开发人员可以自定义项目生成的某些方面。 PyFabricate 将其使用的模板存储在 $HOME/.config/pyfabricate/templates 中,如下所示。

Python Project Creation on Mac OS X
例如,开发人员可能想要使用差异许可证。 简单地,替换LICENSE.template文件

包起来

PyFabricate 目前只有 0.5.0 版本。 我目前正在研究添加附加功能并消除限制。

版本声明 本文转载于:https://dev.to/hasii2011/python-project-creation-on-mac-os-x-3bb4?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    编程 发布于2024-11-13
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-13
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-11-13
  • 除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为的主要场景bool:语句:if、whi...
    编程 发布于2024-11-13
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-11-13
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-13
  • 如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
    如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
    在 PHP 中组合关联数组在 PHP 中,将两个关联数组组合成一个数组是一项常见任务。考虑以下请求:问题描述:提供的代码定义了两个关联数组,$array1 和 $array2。目标是创建一个新数组 $array3,它合并两个数组中的所有键值对。 此外,提供的数组具有唯一的 ID,而名称可能重合。要求...
    编程 发布于2024-11-13
  • 使用 html css 和 javascript 的图像滑块 carosual https://www.instagram.com/webstreet_code/
    使用 html css 和 javascript 的图像滑块 carosual https://www.instagram.com/webstreet_code/
    ?带有缩略图和悬停效果的图像轮播? 嘿,开发社区! ? 在我的最新视频中,我构建了一个优雅的图像轮播,其缩略图突出显示具有平滑悬停效果的活动图像。这种交互式设计增强了用户参与度,并为您的 Web 项目增添了现代感。 主要特点: 响应式布局:轮播在所有屏幕尺寸上都能完美调整。 交互式缩略图:可点击的缩...
    编程 发布于2024-11-12
  • React 的核心:理解组件重新渲染
    React 的核心:理解组件重新渲染
    在学习编程语言时,我们经常深入研究语法并专注于快速构建某些东西,有时会忽略一个关键问题:这种语言实际上解决了什么问题,以及它在幕后如何工作?将我们的注意力转移到理解语言的核心目的和机制上,可以让学习速度更快、适应性更强,使我们能够轻松驾驭最复杂的项目。语法总是可以查找的——即使是最经验丰富的开发人员...
    编程 发布于2024-11-12
  • JavaScript 中的 Deferreds、Promise 和 Future 之间有什么区别?
    JavaScript 中的 Deferreds、Promise 和 Future 之间有什么区别?
    JavaScript 中 Deferreds、Promise 和 Future 的区别在 JavaScript 中,deferreds、promise 和 futures 通常用于处理异步操作。这些概念中的每一个都有其独特的一组特征:Deferreds在正式文档中从未明确定义,deferreds 通...
    编程 发布于2024-11-12
  • 为什么我的 Web 应用程序中的请求之间没有维护 Gorilla 会话变量?
    为什么我的 Web 应用程序中的请求之间没有维护 Gorilla 会话变量?
    使用 Gorilla 会话时未维护会话变量问题使用 Gorilla Sessions Web 工具包时,会话变量不会跨请求保留。当服务器启动并且用户访问 localhost:8100/ 时,他们将被定向到 login.html,因为会话值不存在。登录后,会话变量将被存储,并且用户将被重定向到 hom...
    编程 发布于2024-11-12
  • 如何在Python中像“column -t”命令一样显示列化数据?
    如何在Python中像“column -t”命令一样显示列化数据?
    在 Python 中显示列式数据在命令行管理工具领域,通常需要以良好对齐的方式呈现数据列。虽然制表符提供了一种简单的解决方案,但在处理不同长度的数据时它们会失败。本文旨在通过提出受 Linux“column -t”命令行为启发的 Python 解决方案来应对这一挑战。Python 提供了一个强大的解...
    编程 发布于2024-11-12
  • 在 NumPy 数组中查找特定行的有效方法:问题和解决方案
    在 NumPy 数组中查找特定行的有效方法:问题和解决方案
    高效查找 NumPy 数组中特定行的实例使用 NumPy 数组时,可能会遇到需要确定是否array 包含特定行,但 ndarray 的标准 contains 方法引发了问题。本文针对此问题提出了高效且 Python 的解决方案。一种方法涉及使用 .tolist() 将 NumPy 数组转换为 Pyt...
    编程 发布于2024-11-12
  • 如何解决在服务器上使用 Matplotlib 的 Python 脚本的“_tkinter.TclError:无显示名称且无 $DISPLAY 环境变量”问题?
    如何解决在服务器上使用 Matplotlib 的 Python 脚本的“_tkinter.TclError:无显示名称且无 $DISPLAY 环境变量”问题?
    _tkinter.TclError:没有显示名称,也没有 $DISPLAY 环境变量问题使用 Matplotlib 的 Python 脚本在服务器上失败,并出现错误“生成绘图时没有显示名称和 $DISPLAY 环境变量”。出现此问题的原因是 Matplotlib 默认使用 Xwindows 后端,并...
    编程 发布于2024-11-12
  • 如何使用 Apache Commons IO 在 Java 中递归删除目录?
    如何使用 Apache Commons IO 在 Java 中递归删除目录?
    在 Java 中递归删除目录在 Java 中删除空目录非常简单。然而,当处理包含子目录和文件的目录时,该过程变得更加复杂。本文深入探讨了使用 Apache Commons IO 库递归删除整个目录的有效方法。Apache Commons IO 简介Apache Commons IO 提供了一套全面的...
    编程 发布于2024-11-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3