我在使用py2exe制作可执行文件时遇到了问题。在我的项目中,我使用了带有mssql模块的sqlalchemy。我的setup.py脚本如下所示:
from distutils.core import setup
import py2exe
setup(
windows=[{"script" : "pyrmsutil.py"}],
options={"pyrmsutil" : {
"includes": ["sqlalchemy.dialects.mssql", "sqlalchemy"],
"packages": ["sqlalchemy.databases.mssql", "sqlalchemy.cresultproxy"]
}})但是当我启动如下程序时: python.exe setup.py py2exe
我收到以下错误的构建日志:以下模块似乎缺少'_scproxy','pkg_resources','sqlalchemy.cprocessors','sqlalchemy.cresultproxy‘
在"dist“文件夹中,我看到了我的pyrmsutil.exe文件,但当我运行它时,什么也没有发生。我的意思是,可执行文件开始,但不做任何事情,并立即结束,没有任何pyrmsutil.exe.log。这很奇怪。
有人能帮我纠正这个错误吗?
发布于 2011-03-15 23:57:00
看起来py2exe找不到sqlalchemy c扩展。
为什么不在发行版中包含鸡蛋,将sqlachemy放在py2exe的excludes中,并在start上加载鸡蛋呢?
我在启动脚本中使用了以下代码:
import sys
import path
import pkg_resources
APP_HOME = path.path(sys.executable).parent
SUPPORT = APP_HOME / 'support'
eggs = [egg for egg in SUPPORT.files('*.egg')]
reqs, errs = pkg_resources.working_set.find_plugins(
pkg_resources.Environment(eggs)
)
map(pkg_resources.working_set.add, reqs)
sys.path.extend(SUPPORT.files('*.egg'))我使用Jason Orendorff的path模块(http://pypi.python.org/pypi/path.py),但如果您愿意,可以很容易地将其删除。
发布于 2011-03-15 20:50:20
我知道这本身是没有答案的,但是你有没有尝试过pyInstaller?我曾经使用过py2exe,我发现很难获得真正可分发的东西。pyInstaller需要更多的设置,但是文档很好,结果似乎更好。
要解决此问题,您可以尝试搜索提到的dll,并将它们放置在包含exe的文件夹中,或将其放在构建它的位置。
https://stackoverflow.com/questions/5310922
复制相似问题