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

Mac OS X 上的 Python 项目创建

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

介绍

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]删除
最新教程 更多>
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-07-03
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-07-03
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,可以更快地搜索这些前缀。了解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-07-03
  • Java中假唤醒真的会发生吗?
    Java中假唤醒真的会发生吗?
    在Java中的浪费唤醒:真实性或神话?在Java同步中伪装唤醒的概念已经是讨论的主题。尽管存在这种行为的潜力,但问题仍然存在:它们实际上是在实践中发生的吗? Linux的唤醒机制根据Wikipedia关于伪造唤醒的文章,linux实现了pthread_cond_wait()功能的Linux实现,利用...
    编程 发布于2025-07-03
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-07-03
  • PHP未来:适应与创新
    PHP未来:适应与创新
    PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。 引言在编程世界中,PHP一直是网页开发的中流砥柱。作为一个从1994年就开始发展...
    编程 发布于2025-07-03
  • 如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    如何为PostgreSQL中的每个唯一标识符有效地检索最后一行?
    postgresql:为每个唯一标识符在postgresql中提取最后一行,您可能需要遇到与数据集合中每个不同标识的信息相关的信息。考虑以下数据:[ 1 2014-02-01 kjkj 在数据集中的每个唯一ID中检索最后一行的信息,您可以在操作员上使用Postgres的有效效率: id dat...
    编程 发布于2025-07-03
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-07-03
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-07-03
  • 在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在C中的显式删除 在C中的动态内存分配时,开发人员通常会想知道是否有必要在heap-procal extrable exit exit上进行手动调用“ delete”操作员,但开发人员通常会想知道是否需要手动调用“ delete”操作员。本文深入研究了这个主题。 在C主函数中,使用了动态分配变量(H...
    编程 发布于2025-07-03
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。$("#map").css({ marginT...
    编程 发布于2025-07-03
  • 可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    编程 发布于2025-07-03
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, AttributeError: SomeClass...
    编程 发布于2025-07-03
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-07-03

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

Copyright© 2022 湘ICP备2022001581号-3