导入错误:找不到名为py2exe的模块。

14

当我尝试使用 py2exe 的样例程序时,出现了这个错误。

File "setup.py", line 22, in ?
   import py2exe
ImportError: no module named py2exe
我已安装了py2exe的安装程序,并使用Python 2.6。我从该网站下载了正确的安装程序(Python 2.6版本)。 我的路径设置为C:\Python26,我可以在命令提示符中运行正常的python脚本。 有任何想法吗? 谢谢。 编辑:我先安装了Python 3.1,但之后将其删除了。这可能是问题所在吗?

你安装了 setup_tools 吗? - Geo
不,我还没有安装那个。py2exe需要吗? - Reshure
尝试运行python --version来确保您正在运行Python 2.6。 - Michael Mior
它显示的是Python 2.4.3版本。虽然我从未安装过它,但很可能是随电脑一起安装的。有没有办法更改默认的Python版本? - Reshure
我认为它需要安装 setup_tools。在我的电脑上,我已经安装了它,并且昨天生成了一个exe文件没有出错。尝试安装它。 - Geo
我已经安装了setup_tools。我应该如何使用它? - Reshure
6个回答

9
似乎您需要下载适当的py2exe发行版。 请检查您的c:\Python26\Lib\site-packages\文件夹中是否包含py2exe文件夹。

如果c:\Python26\Lib\site-packages\中没有py2exe文件夹,应该怎么办? ;) - gary
3
请前往 http://sourceforge.net/projects/py2exe/files/py2exe/ 下载与您的 Python 版本相对应的版本。 - Jeremy

9

听起来好像有东西在你不知情的情况下安装了Python 2.4.3,并将其设置为默认版本。

短期内,可以使用以下方式显式地运行你的脚本以便使用Python 2.6:

c:\Python26\python.exe setup.py ...

长远来看,您需要检查系统的PATH(听起来您已经做过了)和文件关联,像这样:
C:\Users\rjh>assoc .py
.py=Python.File

C:\Users\rjh>ftype Python.File
Python.File="C:\Python26\python.exe" "%1" %*

仅仅删除Python 2.4.3可能是一个错误,因为您的系统上可能有某些东西依赖它。将PATH和文件关联更改为指向Python 2.6 可能 不会破坏任何依赖于Python 2.4.3的应用程序,但我不能保证。


短期解决方案起作用了,但在尝试搜索dll时它找不到msvcp90dll。我从互联网上下载了一份副本并将其放置在C:\Python26/DLLs目录中,然后它就可以工作了。谢谢! - Reshure

3

我遇到了完全相同的问题,最终成功解决 - 所以我想分享一下我的解决方案。

结果发现我安装的CollabNet SVN包含一个旧版本的Python,干扰了我最近安装的Python2.7。

用VisualSVN代替CollabNet SVN(包括几次重启)解决了问题。我知道这不是一个“漂亮”的解决方案,因为它导致我卸载了CollabNet SVN - 更好的解决方案可能是修改PATH环境变量... 但是,现在我可以使用py2exe了 :)


3
如果您安装了其他版本的Python,可能会导致另一个Python版本成为默认Python。这种情况可能发生吗?我认为默认的Python安装是由注册表设置确定的。

Python 2.4.3是默认版本。有没有办法将其更改为2.6.2? - Reshure

0

你可能需要全局安装 py2exe 模块,而不是安装在虚拟环境中。我曾经遇到过相同的问题,全局安装该模块解决了问题。


0

记录一下,我遇到的非常相似的问题是由于使用了 Cygwin 命令提示符引起的。改用标准的 cmd.exe shell 就可以解决问题(前提是所有路径和正确安装的 Python 版本都已经准备好)。

这是因为(我太蠢了)Cygwin 安装程序已经下载了自己的版本的 /usr/bin/python。我通过将 Windows 安装的 Python 路径添加到 Cygwin 的 PATH=/cygdrive/c/Python27:$PATH 的开头来解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接