【发布时间】:2013-07-11 15:33:16
【问题描述】:
我正在使用 buildout 创建本地 python 环境,然后使用本地 python 使用 py2app 创建我的应用程序。但是,当我进入 .app 文件,特别是进入 Contents/MacOS/ 时,只有系统 python 的快捷方式。我希望 py2app 以某种方式获取 local python with it so that it only depends on itself, not on the system python.
所以我的问题是:我该如何解决这个问题,以便 py2app 将我的自定义本地版本 python2.7 捆绑在一起,以便我的应用程序将完全独立,而不管本地 python 版本如何?
如果更多信息有帮助,请告诉我。
我的 setup.py
from setuptools import setup
APP = ['main.py']
DATA_FILES = ['src/icon.xib']
OPTIONS = {
'argv_emulation': True,
'packages': [ 'requests' ],
'iconfile':'src/myApp.icns',
'plist': {'CFBundleShortVersionString':'0.1.0',
'LSUIElement': True
}
}
setup(
name='myApp',
package_dir = {'':'src'},
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
【问题讨论】:
-
stackoverflow.com/questions/10184974/… 有点类似。它可能会把你带到某个地方。
-
对,我以前见过。我在做什么(使用来自 buildout 的本地 python)与那里的解决方案中描述的不同吗?我不是使用系统 python 创建应用程序,我使用的是本地 python
-
嗯...根据 py2app 网站,只有启用了 -s 选项才能进行非独立构建。
-
嗯,好像是这样。根据我所做的一些研究,一些 py2app 构建意外启用了该选项。验证您是否拥有最新版本。另外,你确定你是从终端调用本地 Python 吗?可以试试不使用 virtualenv 吗?
-
好像是……可以修改setup.py来导入sys并打印sys.executable吗?而且,您可以尝试不使用 virtualenv 吗?