11

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

"importerror: no module named cx_freeze" 

我已经删除了 cx_freeze并尝试重新安装它,但是这次,在安装的“选择应安装 cx_freeze 的位置”部分中,我从注册表中选择了 python(这是我之前所做的全部)并还选择了“python从另一个位置”(并选择我的 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("")] ,
)    
4

2 回答 2

16

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

因此,当您在 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

于 2013-05-26T12:20:00.240 回答
1

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

我发现在使用编译器更新时,它转换为 pip 安装,并以某种方式从我正在运行的 anaconda 环境cx_freeze的环境变量中删除了站点包路径。%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。这更正了问题并正确对齐了路径变量。

于 2020-08-28T17:38:39.380 回答