【问题标题】:Why am I getting a "no module named cx_Freeze" error after installing cx_freeze?为什么安装 cx_freeze 后出现“没有名为 cx_Freeze 的模块”错误?
【发布时间】:2012-12-04 02:05:57
【问题描述】:

我正在尝试编译一个 python 程序并且我使用的是 python 3.2。 所以我下载了 cx_freeze 并安装了它。当我尝试在 cmd 中运行 setup.py 时,它会显示:

"importerror: no module named cx_freeze" 

我已删除 cx_freeze 并尝试重新安装它,但是这次,在 “选择应安装 cx_freeze 的位置” 部分安装我从注册表中选择了 python(这是我之前所做的)并且还选择了 "python from another location" (并选择我的 C:\python32\ 目录)。然后我得到了这个错误:

"There is a problum with this windows installation package. a program required for this install to complete could not be run."

注意:在我的 setup.py 文件中如下:

from cx_freeze import *

Setup(
    name = "",
    version ="0.1",
    description ="",
    executables = [Executable("")] ,
)    

【问题讨论】:

  • 您的大写字母混淆了:尝试使用cx_Freezesetup()。不过,我不知道这是否是问题所在,因为我认为在 Windows 上加载模块不区分大小写。
  • 我只是尝试使用 cx_freeze 在 Windows 7 64 位上加载 cx_Freeze,但唯一有效的是大写 cx_Freeze

标签: python windows cx-freeze


【解决方案1】:

终于找到了解决这个问题的办法!试了两天,一个程序员朋友帮了我(我自己不是程序员)。

因此,当您在 cmd 中输入“python setup.py build”时,它会尝试在您所在的文件夹中查找 python.exe,如果没有找到,则查找系统路径(您可以使用命令“echo %PATH%”访问)。

所以它看起来在那里,它找到了 python 并运行它——但 python 没有 cx_Freeze。为什么?因为系统路径中的python是你的旧版本!!对我来说,它是 2.6.5,尽管我使用的是 3.3。而这个老版本自然是没有cx_Freeze的,因为我是安装到3.3的。这也解释了为什么在 IDLE 中尝试“import cx_Freeze”没有问题。

要查看哪个版本的 python cmd 正在调用,只需在 cmd 中键入“python”,它就会显示给你。

好的,所以快速的解决方案是简单地添加通向所需 python.exe 的完整绝对路径。对于 python 3.3 它是:

c:\python33\python setup.py build

长期的解决方案是将 python 3.3 添加到您的系统路径中。我自己没有做过,但这应该是关于如何做的信息http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx

这是一个迟到的答案,但我希望这至少对其他人有所帮助。享受你的 cx_Freeze

【讨论】:

  • 如果您使用的是 python3,也许“pip3”和“python3”在您的路径中?如果是这样,“pip3 install cx_freeze”会将它安装到您的 python3 环境中,并且“python3 setup.py build”会起作用吗?
  • Arch 上也是这种情况...python2 而不仅仅是python
【解决方案2】:

我在使用 python 3.8 版时遇到了同样的问题。

我在使用编译器更新 cx_freeze 时发现,它转换为 pip 安装,并以某种方式从我正在运行的 anaconda 环境的 %PATH% 环境变量中删除了站点包路径。

来自github的marcelotduarte,

如果你有 C 编译器,你可以测试开发版本: pip install -U git+https://github.com/marcelotduarte/cx_Freeze.git@develop

我使用 pip uninstall cx_freeze 卸载了模块,然后使用 anaconda conda install cx_freeze 重新安装。这更正了问题并正确对齐了路径变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多