在 python 中初始化项目布局?

2023-11-25

假设一个程序员有以下问题:他想开始一个新的Python项目。他需要样板文件的基本布局,例如测试目录、源目录、setuptools 脚本等。他如何使用单个命令创建所有这些内容和布局?

例如,粘贴(正如其中一个答案中所建议的,为您提供这项服务)

paster create 
Selected and implied templates: PasteScript#basic_package 
A basic setuptools-enabled package 

但 Paster 是一个工具的一部分,其主要范围不是包的部署。如果我想要一个库模板和一个应用程序模板怎么办?如何修改模板以添加我自己的个人内容?


您需要一些支持模板的东西来实现这一点。 python社区中使用最多的是pastescript。

easy_install pastescript # A one-time install
paster create

如果您已经决定了包的名称,那么它就是:

paster create mypackage

如果您想自定义模板,最简单的方法是创建您自己的 python 包,其中包含您想要的自定义模板。将其安装到您的环境中后,您就可以根据需要使用此自定义模板。 (这是像 pylons 这样的框架用来为 Web 应用程序创建模板的东西)。

paster create -t libtemplate mypackage
paster create -t apptemplate mypackage

有关如何创建模板(由代码和源文件混合组成)的更多详细信息,请查看:http://pythonpaste.org/script/developer.html#templates您会注意到模板支持继承,因此您可以,例如只需构建包含的模板,或者从头开始创建您自己的模板。

有关自定义模板的一个很好的示例,您可以在此处查看源代码中的 pylons 模板:塔模板代码

此外,如果您还没有使用它,您应该看看 Ian Bicking 的 virtualenv。它允许您创建临时“虚拟”环境,允许您安装 python 软件包,而无需使用您可能已安装的任何系统范围的软件包和/或与您可能安装的任何系统范围的软件包发生冲突。

使用 virtualenv 和 Pastescript 的标准设置可能如下所示:

mkdir mypackage && cd mypackage
virtualenv --distribute env
source env/bin/activate # 'Turns on / activates' the environment
easy_install pastescript
paster create mypackage
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中初始化项目布局? 的相关文章

随机推荐

  • 捕获标准输出并仍然将其显示在控制台窗口中

    我正在生成一个在可见控制台窗口中运行的子进程 它是运行 MSBuild 的批处理文件 并且我希望将进程生成的输出显示在可见控制台窗口中 并捕获该输出所以我可以用代码处理它 我已经阅读了其他几个问题和处理 ProcessStartInfo R
  • 在这种情况下,为什么调用父类方法而不是子类方法?

    我有一个父类 A 和它的子类 B 两者都有doSomething具有不同类型参数的方法 Class A package Inheritance public class A public void doSomething Object st
  • 添加类后 jQuery 单击事件不起作用

    在我的 JSP 页面中我添加了一些链接 a class applicationdata href Organization Data a a class applicationdata href Business Units a a cla
  • 为什么“cat”不会附加到“file”连接?

    我运行了这两个代码块 期望得到相同的输出 cattest lt file cattest txt cat First thing file cattest cat Second thing file cattest append TRUE
  • Laravel 如果 id 相同则验证唯一

    我有一个表 模型 其中每个用户包含多个相册 有没有办法说这个专栏title应该是唯一的 但仅限于具有相同的行user id 例子 http pastebin com 8dvM4a1T 正如您在示例中看到的 id 为 2 的用户创建了 2 个
  • 使用 ssh 密钥进行 cron git 推送

    我为github帐户设置了ssh密钥 因此不必每次都输入密码 效果很好 这是我使用的脚本 bin bash git push origin master 但是当我使用 cron 运行它时 它不会使用我的 ssh 密钥 这是输出 Permis
  • 状态栏和导航栏上的 Google Now 渐变/阴影

    我正在尝试制作与 Google Now 类似的状态栏和导航栏渐变 图片参考 如下所示的矩形区域 在 Android Marshmallow 上尝试以下选项后
  • 删除 Javascript blob?

    我很难摆脱这些愚蠢的事情 我有几个处理大量媒体文件的 Chrome 应用程序 其中一个我能够使用一堆 删除 和一个window URL revokeObjectURL这最终阻止了他们在chrome blob internals 但这另一个似
  • 使用 python urllib2 在http标头中传递会话cookie?

    我正在尝试编写一个简单的脚本来登录维基百科并使用 Mediawiki api 在我的用户页面上执行一些操作 但是 我似乎从未通过第一个登录请求 从此页面 https en wikipedia org wiki Wikipedia Creat
  • 删除字符串数组中重复项的最佳算法

    今天在学校老师要求我们实现一个重复删除算法 没那么难 大家想出了下面的解决方案 伪代码 for i from 1 to n 1 for j from i 1 to n if v i v j then remove v v j remove
  • Java 9 中已弃用 Observer。我们应该使用什么来代替它?

    Java 9 出来了 Observer已被弃用 这是为什么 这是否意味着我们不应该再实现观察者模式 很高兴知道什么是更好的选择 这是为什么 这是否意味着我们不应该再实现观察者模式 先回答后半部分 YES 这确实意味着你不应该实施Observ
  • 有人可以解释这个懒惰的斐波那契解决方案吗?

    这是代码 fibs 0 1 zipWith fibs drop 1 fibs 评估时 fibs是斐波那契数列的无限列表 我不明白的是列表是如何连接的 zipWith返回一个列表 因此压缩fibs会产生这样的结果 0 1 1 1 2 1 2
  • 属性不可用:8.0 之前的 iOS 版本上的第一个基线布局属性

    我得到以下信息warning in 代码6 1 属性不可用 iOS 版本上的第一个基线布局属性 8 0之前 我想 这也是造成我iOS 7 x构建到crash 发现问题了 此新限制已添加到 iOS 8 0 中 并且以前的版本不支持 要消除此警
  • 使用 flatMap 将地图列表转换为地图

    我如何合并List
  • 从数据表中删除重复项的最佳方法是什么?

    我检查了整个网站并在网上搜索 但无法找到解决此问题的简单方法 我有一个大约有 20 列和 10K 行的数据表 我需要根据 4 个关键列删除此数据表中的重复行 Net 没有一个函数可以做到这一点吗 最接近我正在寻找的函数是 datatable
  • 如何处理 sencha touch 应用程序上的设备后退按钮

    在 Sencha touch 中 如果我使用导航视图 我可以获得后退按钮 这很好 但是如果用户点击设备后退按钮怎么办 直接退出应用程序 根据我的要求 它不应退出应用程序 它必须返回到上一个屏幕 我该怎么做 您可以像这样处理硬件后退按钮 if
  • Qt中有没有办法禁止计算机进入睡眠状态?

    我正在编写一个 Qt 应用程序 它执行一些繁重的计算 但在 Mac 上 也可能在 Windows 上 但我目前无法检查这一点 一旦计算机进入睡眠模式 执行就会停止 我想要一种即使屏幕进入屏幕保护程序或空白时也能继续执行的方法 显然 您可以要
  • 有没有办法在 iOS 设备的 Mobile Safari 上使用 window.onbeforeunload ?

    看起来 Apple 已禁用 iOS 设备 iPhone iPad iPod Touch 的 window onbeforeunload 事件 不幸的是 我找不到任何文档来说明为什么此事件在 Mobile Safari 中不起作用 有谁知道这
  • 如何避免锚点()标签点击时页面刷新?

    我正在创建一个动态网站 我的问题是当我点击以下标签时 a class s inte href Interesante a 页面刷新 如何避免页面刷新 您想要完成的是更新一些兴趣计数器而不刷新页面 您应该使用 AJAX
  • 在 python 中初始化项目布局?

    假设一个程序员有以下问题 他想开始一个新的Python项目 他需要样板文件的基本布局 例如测试目录 源目录 setuptools 脚本等 他如何使用单个命令创建所有这些内容和布局 例如 粘贴 正如其中一个答案中所建议的 为您提供这项服务 p