有哪些方法可以创建一个跨平台,自包含,云同步的模块供个人使用?

时间:2013-08-23 20:41:06

标签: python cross-platform packaging python-module

我已将所有个人宠物项目迁移到Dropbox,其中包括源代码。

我喜欢使用Python,因为我可以切换到Windows或Linux机器,而我只是执行脚本并且它们可以立即工作,无论我使用哪种操作系统或哪种特定机器。

但是,我想改进关于python功能的REUSE的工作流程,这是绝大多数重复的。由于对导入的无能/懒惰处理,以及将我自己的模块文件复制粘贴到每个新脚本的同一文件夹的倾向,而不是说反复重新实现相同的微功能,我非常有动力阻止这个工作流程并通过使用更精心设计的DRYed模块和结构化导入来坚持强大的重用,最终得到更高级别,精益,特定于问题的脚本。

顺便说一句,我已经被“咬”了。重要的是.Net在VisualStudio中工作,你只需要立即进入using命名空间(好吧,如果添加了正确的引用,那么我们知道)。

我已经阅读了很多关于* .pth文件, init .py文件,附加到sys.path,但这对我来说非常困惑。

我的目标是:

  • 在Dropbox(或GDrive或其他)中有一个文件夹,包含两个子文件夹:ScriptsModules
  • Scripts文件夹只包含独立的单文件脚本,可能位于任意嵌套级别的子文件夹中,但它们不应以任何方式相互引用,只需引用系统安装的Python模块和模块打包在Scripts文件夹中;
  • Modules文件夹应包含文件夹和命名空间的一些层次结构,更高级别的模块导入/重用较低级别的模块,以及使用系统安装的Python模块的任何这些模块。

另一个需要的功能是能够将某些脚本移动到计算机的其他位置(例如,将其复制到桌面文件夹中),并且通过引用Dropbox/thatMagicFolder/Modules内部的模块,仍然可以进行最少的修改或不进行修改。

一种能够反映我需求的典型工作流程:

  1. 我在一台机器上创建一个脚本,并使其正常运行;
  2. 然后我去另一台机器(也使用Dropbox),安装一些缺少python模块(比如Numpy或PIL),然后运行我在另一台机器上创建的脚本;
  3. 我更新了脚本,向Modules文件夹中的更多现有模块添加了一些导入,并使其正常运行。理想情况下,脚本将包含最少的样板代码;
  4. 我回到上一台机器,等待Dropbox同步,然后立即运行更新后的脚本!
  5. 我对如何实现这一点没有一个明确的想法,我之前提到的少数尝试(使用__init__文件和* .pth文件)而非简化最终使一切变得更加复杂。但我仍然认为这是如此自然,如此明显,可能我只是遗漏了被启动者所熟知的东西。

    欢迎任何帮助,谢谢阅读!

    编辑:关于一个几乎相同的问题(没有被接受的答案)的一个有趣的,更详细的问题是:

    Local collection of Python packages: best way to import them?

0 个答案:

没有答案