Python - cxfreeze不断提示文件/目录不存在
我有一些非常基础的代码,它能正常工作,我想把它变成一个exe文件。
因为我在用Python 3,觉得它比其他版本的Python干净多了,所以我不能使用Py2Exe,于是我安装了cxfreeze。
当我用以下命令运行cxfreeze时:
cxfreeze "C:\Users\pc user\Documents\Python\First project\Main.py"
它提示说目录/文件不存在。就这么简单。具体的错误信息是“找不到指定的路径”。
cmd能识别cxfreeze,因为我运行“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 个回答
我在使用cxfreeze的时候遇到了类似的问题,具体情况如下:
- 操作系统是64位的Win7
- 安装的是64位的Python 2.7.3(从python.org下载的)
- 使用的是cxfreeze 4.3,适用于64位Windows和Python 2.7(下载自http://cx-freeze.sourceforge.net/)
经过一些调查,我发现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文档中提到的),而且我没有修改安装位置。
- 首先,下载cxfreeze的安装文件。我是在这里找到的。文件名是
cx_Freeze-4.2.3.win-amd64-py3.2.exe
(我的电脑是win7 64位,装的是64位的Python)。 - 然后,把它安装到Python 3.2上。安装后,会在
C:\Python32\Scripts
目录下生成一个叫cxfreeze.bat的文件。 接下来,打开这个.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文件。