我正在尝试冻结Python应用程序和Celery,它们与esky打包在一起,用于更新功能。我需要冻结芹菜,这样它就可以看到第一个可执行文件中的模块,这些模块也将出现在py2exe创建的library.zip文件中。
问题是我不能让芹菜和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冻结芹菜而不引用esky而没有问题,但我将要求能够在未来更新此项目,因此esky支持是必须的。
发布于 2015-06-19 01:42:13
在本教程中,我在运行py2exe和esky时遇到了问题
我在我的项目中使用了cx freeze,我没有遇到任何问题。
它还支持python3,linux和mac,所以我建议你试一试。
http://cx-freeze.readthedocs.org/en/latest/
发布于 2017-02-09 10:58:24
最终,我们没有找到发生故障的原因,但我们确实注意到了一个重要的问题,并改变了我们的环境来解决这个问题。
我们的构建机器为开发承担了双重任务。当然,这不是最好的想法,而且它可能是为该开发安装的许多包中的一个,这会造成麻烦。
因此,我们从一个简单的Windows安装开始,并且只安装了实际执行构建所需的最少数量的软件包。这似乎已经做到了这一点。
发布于 2020-09-16 04:34:55
我重新发现了我们解决这个问题的方法。该错误消息具有误导性--在调试之后,我发现实际的错误是由于在打包操作期间在celery.py的顶部添加了一些代码行而导致的。这些行位于from __future__ import absolute_import, unicode_literals之上,导致以下错误:
SyntaxError: from __future__ imports must occur at the beginning of the file要修复,请执行以下操作:
编辑C:\Python27\Lib\site-packages\celery\bin\celery.py并从文件顶部剥离所有注释和空行。
https://stackoverflow.com/questions/22949932
复制相似问题