问题
I've got some very basic code which works, and I want to turn it into an exe.
Since I'm using Python 3 because it seems so much cleaner than other Python editions, I've not been able to use Py2Exe, so I installed cxfreeze instead.
Once I run cxfreeze with the following command:
cxfreeze "C:\Users\pc user\Documents\Python\First project\Main.py"
It says something about the directory/file not existing. That's about as in-depth as it goes. The exact error is something like "Could not find the path specified"
cxfreeze itself is 'detected' by cmd because I don't get a non-recognised error when I just run "cxfreeze". Both cxfreeze and python are on my PATH environment variable.
Naturally I've triple-checked the directory and it is correct.
I've tried variations of this command, including
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
Can anyone bring light to this situation?
回答1:
- Get cxfreeze binary. I got mine from here. The file is
cx_Freeze-4.2.3.win-amd64-py3.2.exe
(my PC is win7 64-bit with 64b Python). - Install it on Python 3.2. A file cxfreeze.bat is created in
C:\Python32\Scripts
. Open the .bat file. Change the contents:
@echo off
X:\Python32\python.exe X:\Python32\Scripts\cxfreeze %*
with
@echo off
C:\Python32\python.exe C:\Python32\Scripts\cxfreeze %*
or equivalent for your particular path
- Open your cmd console and change your directory to
C:\Python32\Scripts
(I have Python 2.6 as default so that Python32/Scripts is not in the path. Whatever your case this is the safer method) - Execute the cxfreeze.bat file as shown:
,
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>
- A dist folder is created in
C:\Python32\Scripts\
that includes your Main.exe file
回答2:
I had a similar issue with cxfreeze on the following setup:
- Win7 64-bit OS
- 64-bit python 2.7.3 (from python.org)
- cxfreeze 4.3 for Win 64-bit + Python 2.7 (from http://cx-freeze.sourceforge.net/)
After some investigation it turns out that all of the scripts that were installed by the cxfreeze package into my 'c:\python27\Scripts' directory (cxfreeze, cxfreeze.bat, cxfreeze-quickstart, cxfreeze-quickstart.bat) had bad references to my python base path.
Inside those scripts there were references to a base path of 'c:\python\32-bit\2.7' and 'c:\python\64-bit\2.7'. I edited the scripts and fixed the paths(changed the base path to 'c:\python27'), and that fixed the problems. Check the python base install path on your system.
Not sure why these paths were wrong. I installed Python from the official python.org site (as alluded to by cxfreeze docs) and I did not modify the install location.
来源:https://stackoverflow.com/questions/8774063/python-cxfreeze-keeps-saying-file-directory-non-existant