相关疑难解决方法(0)

包装和运送python库和脚本,专业的方式

我的任务是打包和运送商业应用程序包,其中包括:

  1. 一个python库(由我们开发)
  2. 一些python程序取决于上面的库
  3. 我们不是开发的其他库,但它们是我们库的依赖项.
  4. 一个完整的python安装(python 2.6)
  5. 其他语言的其他东西,库和程序.这里不是问题,因为它们没有被上述机器所吸引,而且目前的运输过程已经有效.

该捆绑包出货到Linux,OSX和Windows.在Linux上,它以简单的tar.gz形式发布.用户只需解压缩tar.gz和source提供的bash脚本.bashrc,以便正确设置环境.在Mac上,这是一个dmg.在窗户上,我不知道.Windows家伙今天不在这里,但我看到的是以某种方式创建了一个exe.

我现在将更详细地解释上述几点.

我们的Python库

我们不想给出源代码,所以我们只想提供已编译的python文件.一个更好的策略,使它们更加防篡改是受欢迎的,即使它涉及一些深度黑客(例如我曾经看到魔术从.zip导入的东西被"损坏"ad-hoc).目前该库没有C级代码或类似的平台相关代码,但这很快就会改变.因此,我们必须提供.so与pyc一起编译的特定平台.

显然,这个库将与我们的其他应用程序一起发送到包中.因此它将安装在下载的软件包上.出于这个原因,它必须是完全可重定位的,并且用户必须以某种方式(手动或通过我们的env脚本)将untarred包的位置添加到PYTHONPATH,以便解释器可以找到它.

我们的Python程序

我们将在我们的捆绑包中发送应用程序,这些应用程序将取决于我们的库.这些应用程序的代码必须是用户可见的(以便他可以学习如何使用库接口),或者不可见(对于那些我们希望保持闭源的实用程序),因此需要双重方法.

其他图书馆

我们的库依赖于我们必须发布的第三方库,以便用户启动并运行而不需要任何依赖性.显然,这些库将由我们安装在bundle中,但是我们必须希望这些库在构建期间不会在某处存储安装路径,因为这会使它们不可重定位.

我们的蟒蛇

我们将发布我们的python版本,我们假设用户将运行以访问我们的脚本.这是因为我们想确保运行python版本.此外,我们可能会修改可执行文件或标准库.我们可能会担心这个python与标准python的交互,如果用户想要我们的python上的特定库,它将不得不在我们的捆绑包中安装它,而不是在库的标准位置.

请求

我需要考虑这个任务.我已经看过它,但从未亲自完成,所以我需要你的观点.我上面提到的是我认为事情应该如何运作,根据事情现在如何运作,但它可能是错误的.欢迎任何成功部署的提示,怪癖,建议或策略.鉴于这个问题的复杂性,我已经宣布了一个很高的奖励,根据我能得到的最佳答案.

python

37
推荐指数
3
解决办法
6934
查看次数

为什么Tk GUI被认为是丑陋的?

Tk GUI似乎普遍被认为是丑陋的,但我想知道具体的原因.Tcl/Tk世界中的一些人认为这是一个没有实际意义的点,因为现在对于原生外观有更好的支持,这是我决定使用Tcl/Tk的一个重要原因.然而,现在问题是,因为我正在利用Tcl/Starkit vfs(虚拟文件系统),本机文件对话框不起作用,我将不得不恢复到纯Tk文件对话框.

我正在寻找具体的技术原因,例如关于字体别名(或缺少字体别名)或字体样式或颜色等等.因为我个人不买"这对我来说只是丑陋".对我而言,它只是与众不同,我在Mac和Windows以及Linux之间切换规律,所以我习惯了不同的外观/感觉.

具体来说,传统Tk GUI的主题外观被认为是丑陋的:

Tcl/Tk GUI示例

user-interface tk-toolkit

30
推荐指数
7
解决办法
3万
查看次数

标签 统计

python ×1

tk-toolkit ×1

user-interface ×1