2012-09-27 5 views
7

Używanie cx_freeze w ramach ubuntu 12.04. Generowanie pakietu jest odbywa się bez żadnych błędów, ale gdy próbuję uruchomić pakiet jako samodzielne, pojawia się następujący błąd:uruchomione rzuty pakietów ImportError: brak modułu o nazwie image

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/initscripts /Console.py", 
    line 27, in <module> 
    exec code in m.__dict__ 
    m m File "Setup_cx_freeze.py", line 3, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/__init__.py", 
    line 4, in <module> 
    from cx_Freeze.dist import * 
    File "/usr/local/lib/python2.7/dist-packages/cx_Freeze/dist.py", 
    line 3, in <module> 
    import distutils.command.install 
     File "/usr/lib/python2.7/distutils/command/install.py", line 21, in   <module> 
     from site import USER_BASE 
     File "/usr/lib/python2.7/site.py", line 562, in <module> 
     main() 
     File "/usr/lib/python2.7/site.py", line 540, in main 
     abs__file__() 
     File "/usr/lib/python2.7/site.py", line 100, in abs__file__ 
    m.__file__ = os.path.abspath(m.__file__) 
    File "/usr/lib/python2.7/email/__init__.py", line 79, in __getattr__ 
     __import__(self.__name__) 
     ImportError: No module named image 

Myślę, że skupienie się na to ostatnie zdanie. "ImportError: No module named image."

Aplikacja działa bez żadnych problemów w czystym środowisku Pythona Dlaczego więc pojawia się błąd podczas uruchamiania go jako pakietu "zamrożenia"? Błąd został w jakiś sposób wprowadzony podczas generowania pakietu zamrożenia.

+1

Sam mam ten błąd. Czy kiedykolwiek go rozwiązałeś? – dwxw

+0

czy kiedykolwiek naprawiłeś ten? – kellpossible

Odpowiedz

-1

Rozwiązano to instalując Python Imaging Library: http://www.pythonware.com/products/pil/

1) python setup.py build

2) sudo python setup.py install

+0

Czy na pewno nie mówisz o module "Obraz", a nie "obraz"? – kellpossible

+0

Nie, nie jestem pewien. To było ponad rok temu i od tego czasu nie dotykałem Pythona. – imjared

2

skończyło się ustalenia przez to wyraźnie w tym pakiecie "email.mime" w konfiguracji. py script kompilacja opcji exe.

+0

Umieszczenie 'email' na liście' packages' również powinno działać. Ponieważ używa on importowania dynamicznego, cx_Freeze nie wykrywa automatycznie, które moduły są w użyciu, więc musi zostać jawnie poproszony o ich skopiowanie. –

+0

@ThomasK Zabawna rzecz, mam te same problemy i nie ma nic w moim oprogramowaniu, które używa e-maila lib. Dodałem email.mime do moich pakietów i nic nie może sprawić, żeby to działało. –

1

Brakujące "zdjęcie" to tylko pierwsza część problemu. Spróbuj dodać to do kodu:

from email.mime.image import MIMEImage 
from email.mime.audio import MIMEAudio 
from email.mime.message import MIMEMessage 

Rozwiązało to problem z "obrazem", "dźwiękiem" i "komunikatem".

+0

To nie działa dla mnie, żadnych innych alternatyw? –