Python - cx_freeze一直说文件/目录不存在

时间:2012-01-07 23:39:35

标签: python batch-file cx-freeze python-3.2

我有一些非常基本的代码可以使用,我想把它变成一个exe。

由于我使用的是Python 3,因为它看起来比其他Python版本更清晰,所以我无法使用Py2Exe,所以我安装了cxfreeze。

使用以下命令运行cxfreeze后:

cxfreeze "C:\Users\pc user\Documents\Python\First project\Main.py"

它说明了目录/文件不存在的内容。这和它一样深入。确切的错误类似于“找不到指定的路径”

cxfreeze本身被cmd“检测到”,因为当我运行“cxfreeze”时,我没有收到无法识别的错误。 cxfreeze和python都在我的PATH环境变量上。

当然,我已经对目录进行了三重检查,这是正确的。

我尝试过这个命令的变体,包括

python cxfreeze "C:\Users\pc user\Documents\Python\First project\Main.py"
cxfreeze C:\Users\pc user\Documents\Python\First project\Main.py
python cxfreeze C:\Users\pc user\Documents\Python\First project\Main.py

有人能为这种情况带来光明吗?

2 个答案:

答案 0 :(得分:2)

  • 获取cxfreeze二进制文件。我从here得到了我的。该文件是 cx_Freeze-4.2.3.win-amd64-py3.2.‌exe(我的电脑是win4 64位,64位Python)。
  • 在Python 3.2上安装它。在中创建了一个文件cxfreeze.bat C:\Python32\Scripts
  • 打开.bat文件。更改内容:

    @echo off
    X:\Python32\python.exe X:\Python32\Scripts\cxfreeze %*

    @echo off
    C:\Python32\python.exe C:\Python32\Scripts\cxfreeze %*

    或特定路径的等效文件

  • 打开cmd控制台并将目录更改为 C:\Python32\Scripts(我默认使用Python 2.6 Python32 / Scripts不在路径中。无论你的情况如何,这都是 更安全的方法)
  • 执行cxfreeze.bat文件,如下所示:

Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\>cd c:\Python32\Scripts

c:\Python32\Scripts>cxfreeze.bat "C:\Users\pc user\Documents\First project\Main.py"
copying C:\Python32\lib\site-packages\cx_Freeze\bases\Console.exe -> c:\Python32\Scripts\d
ist\Main.exe
copying C:\Windows\system32\python32.dll -> c:\Python32\Scripts\dist\python32.dll
...............................................
................................................. 
m zipimport
m zlib

copying C:\Python32\DLLs\bz2.pyd -> c:\Python32\Scripts\dist\bz2.pyd
copying C:\Python32\DLLs\unicodedata.pyd -> c:\Python32\Scripts\dist\unicodedata.pyd

c:\Python32\Scripts>
  • C:\Python32\Scripts\中创建一个dist文件夹,其中包含您的 Main.exe文件

答案 1 :(得分:2)

我在以下设置中遇到了与cxfreeze类似的问题:

经过一番调查后发现,cxfreeze软件包安装的所有脚本都进入了我的c:\ python27 \ Scripts'目录(cxfreeze,cxfreeze.bat,cxfreeze-quickstart,cxfreeze-quickstart.bat)对我的python基本路径有错误的引用。

在这些脚本中,引用了一个基本路径:&c; \ python \ 32-bit \ 2.7'和' c:\ python \ 64-bit \ 2.7'。我编辑了脚本并修复了路径(将基本路径更改为' c:\ python27'),这解决了问题。 检查系统上的python基本安装路径。

不确定为什么这些路径是错误的。我从官方python.org网站安装了Python(由cxfreeze docs提到),我没有修改安装位置。