2011-05-13 10 views
5

Nie jestem typem użytkownika Windows, ale muszę zbudować exe z mojego kodu Pythona, więc chciałbym użyć py2exe aby to zrobić. Mam system XP, w którym zainstalowałem Pythona 2.6.6. Pobrałem źródło py2exe-0.6.9, ale gdy próbowałem zainstalować (przez "python setup.py install"), pojawił się błąd "Nie można znaleźć vcvarsall.bat". Przeszukałem go i natknąłem się na this post, gdzie respondent zasugerował zainstalowanie dostosowanej wersji plików binarnych GCC MinGW dostępnych here. Zrobiłem to, a teraz, kiedy próbuję zainstalować py2exe, otrzymuję nowy błąd. Oto wynik:Jak mogę zbudować py2exe bez błędów?

C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9>python setup.py install 
C:\Documents and Settings\Administrator\Desktop\py2exe-0.6.9\py2exe\build_exe.py:16: DeprecationWarning: the sets module is deprecated 
    import sets 
running install 
running build 
running build_py 
running build_ext 
building '_memimporter' extension 
creating build\temp.win32-2.6 
creating build\temp.win32-2.6\Release 
creating build\temp.win32-2.6\Release\source 
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DPYTHONDLL=\"PYTHON26.DLL\" -DPYTHONCOM=\"pythoncom26.dll\" -IC:\Python26\include -IC:\Python26\PC -c source/MemoryModule.c -o build\temp.win32-2.6\Release\source\memorymodule.o 
source/MemoryModule.c:30: warning: ignoring #pragma warning 
source/MemoryModule.c: In function 'BuildImportTable': 
source/MemoryModule.c:364: warning: pointer targets in passing argument 1 of 'MyLoadLibrary' differ in signedness 
source/MemoryModule.c: In function 'GetNameTable': 
source/MemoryModule.c:610: warning: passing argument 4 of 'qsort' from incompatible pointer type 
source/MemoryModule.c: In function 'MemoryGetProcAddress': 
source/MemoryModule.c:637: warning: passing argument 5 of 'bsearch' from incompatible pointer type 
c:\mingw\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DPYTHONDLL=\"PYTHON26.DLL\" -DPYTHONCOM=\"pythoncom26.dll\" -IC:\Python26\include -IC:\Python26\PC -c source/_memimporter_module.c -o build\temp.win32-2.6\Release\source\_memimporter_module.o 

In file included from source/_memimporter.c:8, 
       from source/_memimporter_module.c:2: 
source/Python-version.h:13: error: redefinition of typedef 'Py_ssize_t' 
C:\Python26\include/pyport.h:115: error: previous declaration of 'Py_ssize_t' was here 
error: command 'gcc' failed with exit status 1 
+4

Czy naprawdę potrzebujesz go skompilować? Istnieją pliki binarne wygrywające? – JustFogMaxi

+2

* smacks head * Wyraźnie nie wyglądałem wystarczająco mocno na stronie sourceforge. Po prostu kliknąłem link "Szukam najnowszej wersji? Pobierz py2exe-0.6.9.zip (149.7 KB)", nie zdając sobie sprawy, że gdybym zbadał inne pliki do pobrania, byłby to plik binarny. Dzięki! Utrzymam to pytanie przy życiu, na wypadek, gdyby było ważne dla każdego, kto rozwiąże problem z budynkiem. –

+1

Czy Twój kod jest pytonem? jeśli tak, powinieneś być w stanie skompilować go do exe bez c-compillera. Będzie zawierał wszystkie biblioteki DLL (z wyjątkiem tych z systemem operacyjnym). O vcvarsall.bat: jest to plik nietoperza konfiguracyjnego z Visual Studio. Pobierz ekspresową (darmową) edycję i powinieneś mieć się dobrze. Ten plik bat ustawił wszystkie zmienne środowiskowe, takie jak pathes, binaries, katalogi potrzebne wraz z rozwojem. Życzę dobrej rozdzielczości – Pavlonator

Odpowiedz

Powiązane problemy