【问题标题】:Invalid command 'py2exe'无效的命令“py2exe”
【发布时间】:2011-10-15 20:06:00
【问题描述】:

我安装了 python 2.5 和 2.6。我在 2.6 上运行我的项目。 首先,我安装了 2.5 的 py2exe,但它没有工作,所以我安装了 2.6 的 py2exe 并删除了另一个版本,但后来找不到该模块。现在我更改了系统路径:

import sys
sys.path.append('F:\Program Files\Python26\Lib\site-packages\py2exe')
from build_exe import py2exe 
from distutils.core import setup

setup( 
 name =...

当我在控制台中输入:path\setup.py py2exe 我得到“错误:无效命令'py2exe'”

编辑:我用正确的斜杠将路径更改为“F:/Program Files/Python26/Lib/site-packages/py2exe”。 控制台如下所示:

E:\Eclipse Workspace\...\src>setup.py py2exe
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: invalid command 'py2exe'

【问题讨论】:

  • 对于 Windows 路径,始终使用原始字符串或转义的反斜杠。
  • 尝试卸载并重新安装 2.6 版本 - 删除旧版本时可能会删除一些常用组件。
  • 尝试重新安装和反斜杠。它仍然说“无效的命令 py2exe”

标签: python py2exe


【解决方案1】:

这是你的问题:

sys.path.append('F:\Program Files\Python26\Lib\site-packages\py2exe')

反斜杠 (\) 是 escape character,几乎所有编程语言(包括 Python)都以特殊方式进行干预。

不幸的是,DOS(以及 Windows 的扩展)也使用反斜杠作为目录分隔符而不是斜杠。 There is a bit of history behind this...

无论如何,您有几个选择:

使用斜线。 Python 会在内部将它们转换为反斜杠。

d = 'C:/Program Files/'

使用两个反斜杠,这将转义反斜杠并插入一个反斜杠。

d = 'C:\\Program Files\\'

使用不解释转义字符的“原始”字符串。通过在字符串前添加r 来做到这一点。

d = r'C:\Program Files\'

我个人更喜欢第一种解决方案。但是我也看到其他两个也被使用了很多。请注意,这也适用于其他方式,因此如果您使用反斜杠,Python 会将其转换为 UNIX 和 Linux 系统上的斜杠。

作为免费的奖励提示,这也可能是指出os.path.join()函数的好地方:)

【讨论】:

  • 感谢您的回复。我试过'F:/Program Files/Python26/Lib/site-packages/py2exe'和\\但我仍然得到同样的错误。当我在“F:/Program Files/Python26/Lib/site-packages/py2exe/”末尾添加一个斜杠时,它表示没有名为 build_exe 的模块。知道为什么 python 找不到 py2exe 吗? Pygame位于同一目录中,我可以毫无问题地导入它。
  • 如果它在站点包中,通常不需要附加路径。您是否使用安装程序同时安装了 Python 和 py2exe?在任何情况下,您都需要将 F:/Program Files/Python26/Lib/site-packages/ 添加到您的路径中,而不需要 py2exe。
  • 是的,一切都安装了安装程序。使用 F:/Program Files/Python26/Lib/site-packages/ 我得到“导入错误:没有名为 build_exe 的模块。\site-packages\py2exe 包含 build_exe.py 所以我不知道为什么 python 再次抱怨。
  • 从命令行启动 python,import sysprint sys.pathF:/Program Files/Python26/Lib/site-packages/ 应该在那里。如果不是,则说明您的安装有问题。您还使用了错误的导入语法,反向 py2exebuild_exe。 AFAIK 你也应该使用import py2exe
  • F:/Program Files/Python26/Lib/site-packages/ 列在 sys.path 下,因此我删除了该附加行。我从 python 书中复制了from py2exe.build_exe import py2exe -> 错误:没有名为 py2exe.build_exe 的模块。然后我尝试了import py2exe -> 错误:没有名为 py2exe 的模块。 from build_exe import py2exe -> 错误:没有名为 build_exe 的模块。 from py2exe import build_exe -> 错误:没有名为 py2exe 的模块。
【解决方案2】:

解决方法很简单。

添加安装。

所以不是

setup.py py2exe

setup.py py2exe 安装

它可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-05
    • 2017-10-04
    • 2013-12-04
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多