首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用py2exe和esky冻结芹菜?

如何使用py2exe和esky冻结芹菜?
EN

Stack Overflow用户
提问于 2014-04-09 07:07:29
回答 3查看 377关注 0票数 1

我正在尝试冻结Python应用程序和Celery,它们与esky打包在一起,用于更新功能。我需要冻结芹菜,这样它就可以看到第一个可执行文件中的模块,这些模块也将出现在py2exe创建的library.zip文件中。

问题是我不能让芹菜和esky一起冻结。这是一个最简单的、经过剥离的setup.py文件,我正在使用它来尝试找到解决问题的方法:

代码语言:javascript
复制
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',
          }
      }
)

当我运行以下命令时:

代码语言:javascript
复制
python setup.py bdist_esky

我得到以下错误:

代码语言:javascript
复制
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支持是必须的。

EN

回答 3

Stack Overflow用户

发布于 2015-06-19 01:42:13

在本教程中,我在运行py2exe和esky时遇到了问题

我在我的项目中使用了cx freeze,我没有遇到任何问题。

它还支持python3,linux和mac,所以我建议你试一试。

http://cx-freeze.readthedocs.org/en/latest/

票数 0
EN

Stack Overflow用户

发布于 2017-02-09 10:58:24

最终,我们没有找到发生故障的原因,但我们确实注意到了一个重要的问题,并改变了我们的环境来解决这个问题。

我们的构建机器为开发承担了双重任务。当然,这不是最好的想法,而且它可能是为该开发安装的许多包中的一个,这会造成麻烦。

因此,我们从一个简单的Windows安装开始,并且只安装了实际执行构建所需的最少数量的软件包。这似乎已经做到了这一点。

票数 0
EN

Stack Overflow用户

发布于 2020-09-16 04:34:55

我重新发现了我们解决这个问题的方法。该错误消息具有误导性--在调试之后,我发现实际的错误是由于在打包操作期间在celery.py的顶部添加了一些代码行而导致的。这些行位于from __future__ import absolute_import, unicode_literals之上,导致以下错误:

代码语言:javascript
复制
SyntaxError: from __future__ imports must occur at the beginning of the file

要修复,请执行以下操作:

编辑C:\Python27\Lib\site-packages\celery\bin\celery.py并从文件顶部剥离所有注释和空行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22949932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档