我正在尝试冻结一个 Python 应用程序和 Celery,并与 esky 打包以提供更新功能。我需要将 Celery 冻结,以便它可以看到第一个可执行文件中的模块,该可执行文件也将出现在 py2exe 创建的 library.zip 文件中。
问题是我不能让 Celery 和 esky 一起冷冻。这是我用来尝试找到解决问题的解决方案的最低限度的、精简的 setup.py 文件:
from esky import bdist_esky
from distutils.core import setup
setup(name='ColdCelery',
scripts=['C:\\Python27\\Lib\\site-packages\\celery\\bin\\celery.py'],
options = {
'bdist_esky':{
'freezer_module': 'py2exe',
}
}
)
当我运行以下命令时:
python setup.py bdist_esky
我收到以下错误:
running bdist_esky
running build_scripts
*** searching for required modules ***
error: c:\temp\tmpz5146o\scripts\celery.py: The process cannot access the file
because it is being used by another process
机器上没有可以使用 Celery 的正在运行的 Python 进程。我认为这是 py2exe 和 esky 之间的冲突,但不知道如何克服它。
我可以使用 py2exe 冻结 Celery,而无需引用 esky,但我需要能够在将来更新这个项目,所以 esky 支持是必须的。