2

我正在从旧的 Win2K 机器迁移到新的更强大的 Vista 64 位 PC。大多数迁移都进行得相当顺利——但我确实发现我需要重新安装所有与 Python 相关的工具。

我已经下载了 mechanize-0.1.11.tar.gz 文件并运行 easy_install 来安装它。这产生了 C:\Python25\Lib\site-packages\mechanize-0.1.11-py2.5.egg。

然后我运行了一个 python 脚本来测试它,它在解释器下运行良好。但是,当我运行 py2exe 编译脚本时,我收到一条消息,提示找不到 mechanize。

然后我将 egg 移动到一个新文件夹,使用 easy_install 安装它 - 并且得到了它确实安装的所有迹象。

但是,当我尝试使用 py2exe 时,我仍然收到相同的消息 - 机械化不存在!

我搜索了整个磁盘的“机械化”,结果只得到了 2 个鸡蛋文件。安装应该生成哪些文件 - 我应该将它们放在哪里?

显然,我在这里遗漏了一些东西......有什么建议吗?

另外,也许相关的是,我正在运行的 python 是 32 位 2.5.4 版本......这是我以前拥有的,并且希望在安装 64 位版本之前让一切正常运行 - 另外,我没有看到一些似乎支持 64 位版本的工具(easy_install 和 py2exe)。那是问题的一部分吗,我是否需要安装和运行 64 位版本 - 对于那些运行 32 位 PC 的人来说,当他们运行我的脚本时,这会是一个问题吗?

4

2 回答 2

2

py2exe 网站上有一个说明,如果源是鸡蛋格式,它就不起作用:

如果您的程序的某些依赖项是 .egg 形式,那么 py2exe 目前(从 0.6.5 开始)不能开箱即用。

如果您的程序本身不使用 setuptools 工具(例如 pkg_resources),那么您需要做的就是确保将依赖项以解压缩的形式安装在您的系统上,而不是以压缩的 .egg 格式。

实现此目的的一种方法是 对 easy_install 使用 --always-unzip 选项

你运行的是哪个版本?pypi.python.org 上列出的最新版本是 0.6.9 版,但没有迹象表明我可以找到鸡蛋问题是否在此版本中得到修复。

于 2009-07-20T00:22:28.560 回答
0

正如上面其他用户所建议的那样......我在此总结了使 Mechanize 和 BeautifulSoup 与 py2exe 一起工作所需的步骤。

将 .py 文件转换为 Windows .exe

按照此处的说明进行操作:py2exe 教程

步骤1

从这里下载 py2exe... http://sourceforge.net/projects/py2exe/files/ (我使用的是 Python 2.7)

我为 Python 2.7 安装了 0.6.9

py2exe-0.6.9.win32-py2.7.exe (201KB)

安装它

第2步

尝试一个 hello world 文件.. 以确保一切正常.. 如给出

http://www.py2exe.org/index.cgi/Tutorial

  • Python setup.py 安装(网络教程的第 2 步)
  • 然后使用 setup.py(网络教程的第 3 步)。

有关模块的任何问题,请参阅下面的问题(在此文件夹下:C:\Python27\Lib\site-packages)

第 3 步

测试 dist 目录中的可执行文件..。

总之,当您遇到模块问题时,请确保您访问站点包目录.. 并查看是否有完整的包,而不仅仅是 .egg 文件。py2exe 不能只使用 .egg 文件(外行的理解)。

问题:

py2exe 找不到 Mechanize 模块。这是因为我在本地机器上第一次安装 mechanize 只是一个 .egg 文件(mechanize-0.2.5-py2.7.egg.OLD 324KB)。我需要安装像这样的完整机械化:

easy_install --always-unzip <library_name>

我这样做了.. 然后这次 mechanize 安装在一个名为 mechanize-0.2.5-py2.7.egg (1.1MB) 的文件夹中。

还有beautifulsoup-3.2.0-py2.7.egg 最初的.egg 文件是69KB ......安装后

easy_install -–always-unzip BeautifulSoup

它安装在一个名为 beautifulsoup-3.2.0-py2.7.egg (229KB) 的文件夹中。

这里有一些说明:http ://www.daniweb.com/software-development/python/threads/204941

于 2011-11-30T08:48:35.107 回答