在Windows中,Dropbox客户端使用python25.dll和MS C运行时库(msvcp71.dll等)。在OS上,Python代码是编译字节码(pyc)。
我的猜测是,他们使用的是他们自己编写的一个共用库,然后只需要为不同的平台使用不同的钩子。
这是什么开发方法?它显然不是IronPython或PyObjC。这个范例对我很有吸引力,但是我的CS foo和Google foo让我失望了。
发布于 2010-04-21 09:08:33
Dropbox在Mac上使用了wxPython和PyObjC的组合( 0.8系列的wxPython较少)。看起来他们已经构建了一个UI抽象层,但没有什么压倒性的东西--也就是说,他们正在以正确的方式做他们的跨平台应用。
他们包含自己的Python,主要是因为Mac上包含的Python版本随操作系统版本的不同而不同( Dropbox支持回到10.4 IIRC);此外,他们对Python解释器进行了一些定制,以改进线程和I/O行为。
(我没有为Dropbox工作,也没有任何内部知识;我所做的只是阅读他们的论坛,并检查Dropbox应用程序包中site-packages.zip中的文件名。)
发布于 2011-06-27 20:39:06
对于,Dropbox已经部署了一个类似于py2exe的模块,将他们所有的.py脚本、所需的库、资源等打包到您上面提到的发行版(.exe、library.zip、MS C runtime library和python25.dll)中,这样它们就可以在不需要安装<代码>E29的情况下运行。下面是一个示例代码,说明了如何使用py2exe来实现这一点。
from distutils.core import setup
import py2exe
options = {'py2exe': {
'compressed':1,
'bundle_files': 2,
'dll_excludes': ['w9xpopen.exe']
}}
setup(console=['myapp.py'],options=options)有关更多解释,请参阅教程here。
PS:可以使用上面的示例中的options参数来控制分发中的文件数量。
发布于 2013-10-09 22:56:06
https://stackoverflow.com/questions/2678180
复制相似问题