需要无蛋安装Mechanize的解决方案 - Py2exe失败

3 投票
2 回答
995 浏览
提问于 2025-04-17 02:17

我在Win7上安装Mechanize的时候绞尽脑汁,结果一直没成功。我尝试过用easy_install --always-unzip的方法,也试过easy_install -Z的方法,还在site-packages目录里添加了.pth文件,甚至把这些方法组合在一起试过。

不过,Py2exe和egg文件不太兼容。如果你有成功的经验,请回复我。

谢谢 - Brad


我参考的一些链接有:

Mechanize没有通过easy_install安装成功?

如何为Python 2.7安装mechanize?

http://www.daniweb.com/software-development/python/threads/204941

http://www.velocityreviews.com/forums/t691937-re-mechanize-not-recognized-by-py2exe.html

2 个回答

0

最后一次安装mechanize时,我按照@markgemmill上面提到的方法1进行了操作。

在运行我的可执行文件时,我一直收到一个日志错误:ImportError: No module named inspect。

在py2exe的setup.py文件中,我把inspect、calendar等模块添加到了includes[]里,之后我意识到我可能应该把我的代码改成:

    import mechanize
        to
    from mechanize import *

这样做成功了。通过py2exe生成的可执行文件可以正常运行!

这是个新手错误。总是在学习中…… Brad

4

如果你还没看过,可以去 py2exe 网站上看看,有一部分是关于 处理 eggs 的内容。我不太清楚这个方法效果如何(因为我从来不安装 eggs),而且 py2exe 本身就已经够复杂了,处理安装了 egg 的包可能会让事情变得更麻烦。我建议你可以试试以下两种方法:

  1. 下载 mechanize源代码包,解压后修改里面的 setup.py 文件,把 zip_safe 选项改成 False。然后在命令行中安装 mechanize:

    python setup.py install
    
  2. 使用 pip 来安装:

    pip install mechanize
    

    当然,你得先安装 pip(可以用 easy_install pip 来安装)。pip 默认是平铺安装包的。(顺便说一下,如果你在 Windows 上使用 pip,要注意它不能处理需要编译的 Python 包。虽然 mechanize 不会有问题,但如果你开始频繁使用其他包的话,就要小心了...)

除了 egg 的问题,我没有看到 mechanize 的包结构中有什么会让 py2exe 在安装后无法识别的地方。

撰写回答