【发布时间】:2014-06-06 23:14:08
【问题描述】:
在我的 IronPython 脚本中,我使用标准库模块,例如 ConfigParser、日志记录和 JSON。
然后我使用 pyc.py 创建一个可执行文件。一开始我遇到了问题,即'...ImportException: no module named ...'
因为它们没有包含在 exe 和随附的 dll 中。
所以我从这里运行了一个解决方案:IronPython: EXE compiled using pyc.py cannot import module "os",它大部分都有效。
例如,导入“ConfigParser”会起作用,因为在 IronPython 的“Lib”文件夹中作为模块,它作为“ConfigParser.py”存在。但是我在使用 JSON 和 logging 时仍然遇到问题,因为它们位于带有其名称(包?)的文件夹中。
我觉得我只是错过了一些简单的东西,可能需要阅读更多关于 python 模块以及它们如何真正工作的内容,但我不确定我应该寻找什么。 任何帮助将不胜感激。
谢谢!
编辑:
我还不能回答我自己的问题,所以我会留在这里。
不知何故让它以一种非常“hacky”的方式工作。我缺少另一个更清洁的解决方案(pyc.py中的某些选项?)
这就是我所做的:
1) 制作了从上面的链接生成的 StdLib.dll 文件 (IronPython: EXE compiled using pyc.py cannot import module "os")。这将缺少标准库包。
2) 使用SharpDevelop编译上述dll中未包含的标准lib包,方法如下:http://community.sharpdevelop.net/blogs/mattward/archive/2010/03/16/CompilingPythonPackagesWithIronPython.aspx
3) 使用 SharpDevelop 构建我的程序并将所有参考资料联系在一起。 - 参考第 2 步中生成的 dll - 引用步骤 1 中的 StdLib.dll
同样,必须有更好的解决方案。
【问题讨论】:
标签: python ironpython