我正在用Backbone.js构建一些简单的编辑器,我希望能够将它们作为应用程序分发给用户,以便以一种主要是客户端的方式编辑内容(即,我不希望用户必须安装像MySQL或Apache这样的东西)。
所以我想象了一个场景:
localStorage
信不信由你,这将解决我的问题:我想帮助用户在浏览器中编辑数据,然后以熟悉的格式(例如,CSV可以加载到Excel中)将其还原出来。
我不想强迫他们配置服务器。似乎这在HTML5堆栈中几乎是可能的。但是,至少在一个浏览器(Chrome)中,这是不起作用的,因为我会遇到这样的错误:
XMLHttpRequest cannot load file:///users/me/project/data/Appdata.json. Origin null is not allowed by Access-Control-Allow-Origin.
(奇怪的是,我在Firefox中没有得到这个错误,而且.js
或.json
文件加载得很好。)
所以在我看来,让这些用户使用某种本地服务器来提供主干接口是不可能的。
所以,我试图找出如何构建一个可分发的跨平台可执行文件,允许我的用户启动Flask服务器。(我希望为Backbone.js应用程序构建一个REST后端。)
这是一厢情愿吗?我想我可以让相关人员安装Python。
这可行吗?似乎有很多方法可以打包Python程序(pyinstaller?py2exe?…)所以我想我会问这里,以防有人知道我想的堆栈的解决方案。
蒂亚!
我的建议是在代码周围创建一个瘦的服务包装器。这将允许服务器独立于主代码库运行,也允许用户直接关闭服务器(只需右键单击服务图标并选择“退出”)。
This SO answer应该可以帮助您开始。
在阅读了您更新的问题之后,我认为像mongoose这样的东西可能更适合您的任务。它是一个可嵌入的web服务器,是FLOSS,具有python绑定。烧瓶可能有点过头了。
不容易。在Windows上,必须包含Python本身。Mac和Linux通常都安装了Python,但您不能确定是哪个版本,因此通常也更容易为它们打包特定的Python。然后,您必须在包中包含所有要运行的依赖项,或者能够使用pip、easy_install等安装这些依赖项
您可以使用py2app和py2exe。这不会是跨平台的,因为您仍然需要为每个目标操作系统制作不同的版本。使其跨平台的唯一方法是捆绑所有版本,并让一些跨平台代码为该平台执行适当的版本。
如果你需要像MySQL甚至SQLite这样的数据库,事情会变得更加复杂,因为你也必须包含这些数据库。
您可以使用AnthonyGordon McMillan’s Pyinstaller或Tuininga’s cx_Freeze
引用PyInstaller网站:
相关问题 更多 >
编程相关推荐