Создание программы в Python 3 для пользователей Windows не может использовать Pil?

StackOverflow https://stackoverflow.com/questions/8987639

Вопрос

Я написал довольно простое программу GUI для автоматизации нескольких процессов для пользователей Windows в Python (так как это единственный язык программирования, которого я несколько знакомый с тем, что будет работать в Windows). Я бы в идеале не хотел, чтобы пользователю нужно было запустить программу установки на своем компьютере, так как мой план - это запустить самостоятельно в USB-накопителе.

Это зависит от ОС, забивки, строки, SYS, TKinter, WebBrowser, Pil, Ftplib и Chob.

Похоже, что все зависимости были импортированы, когда у меня работают CX_Freeze на него, за исключением Pil. Я никогда не использовал cx_freeze раньше, поэтому я мог бы сделать что-то не так, но это не похоже на это. Запуск программы от REFROZEN .py Script работает нормально.

Вот сообщение об ошибке, которое я получаю при попытке использовать команду PIL:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python32\lib\tkinter\__init__.py", line 1399, in __call__
    return self.func(*args)
  File "E:\AlbumUploader.py", line 143, in OnButton2Click
    img.thumbnail(size, Image.ANTIALIAS)
  File "C:\Python32\lib\site-packages\PIL\Image.py", line 1573, in thumbnail
    self.load()
  File "C:\Python32\lib\site-packages\PIL\ImageFile.py", line 168, in load
    self.load_prepare()
  File "C:\Python32\lib\site-packages\PIL\ImageFile.py", line 234, in load_prepare
    self.im = Image.core.new(self.mode, self.size)
  File "C:\Python32\lib\site-packages\PIL\Image.py", line 39, in __getattr__
    raise ImportError("The _imaging C module is not installed")
ImportError: The _imaging C module is not installed
.

Спасибо за любую помощь, которую вы можете предоставить. Я вижу, что это все еще ссылается на C: \ python32, который может быть частью проблемы, потому что она не должна быть (если я не ошибаюсь).

Обновление:

Я посмотрел на FAQ PIL, и кажется, что сущность этого ответа - это то, что мне нужно убедиться, что мой список Sysspath является правильным. Я в основном схватил все файлы Python для Windows и включал его в USB-накопитель, который я пытаюсь использовать, чтобы содержать все, и установить мой путь так:

program_dir = os.path.split(sys.argv[0])[0]
sys.path = [program_dir]
sys.path.append(program_dir + os.sep + 'Lib')
sys.path.append(program_dir + os.sep + 'Lib' + os.sep + 'site-packages')
sys.path.append(program_dir + os.sep + 'Lib' + os.sep + 'site-packages' + os.sep + 'PIL')
sys.path.append(program_dir + os.sep + 'DLLs')
.

Все пути кажутся правильными, но по какой-то причине я все еще получаю ту же ошибку. Когда я запускаю файл .py все работает на 100%, но это, кажется, как-то сломается. Другие модули, кажется, работают просто отлично, например, забит, OS и SYS, например.

Это было полезно?

Решение

Я думаю, что ваша основная проблема может быть, что библиотека визуализации Python (PIL) еще не поддерживает Python 3.x.

Если вы посмотрите на Plap Downlowersage Page Вы увидите, чтоДля Python 2.4, 2.5, 2.6 и 2.7 загрузки Windows 2,5, 2,6 и 2.7, но ничего для Python 3.x.

Этот вопрос имеет ответ, который подробно описывает неофициальные порты Pil для Python 3.X Что может стоить попробовать.

Если это работает, вы можете взглянуть на Первый вопрос на FAQ/ a> Что касается «модуля _imaging C не устанавливается» ошибка и списки различных вещей, которые вы можете сделать, чтобы определить проблему.

Другие советы

В прошлом я нашел cx_freeze, чтобы иметь проблемы, вытягивая в правильных dlls под Windows.

Я использовал Проводник процесса для отслеживания каких DLL искал,Но не найден, а затем добавил их в проект вручную, и это получило его работать.Как это будет делать то же самое для любого файла, я представляю, что может быть сделано в вашем случае.

Это было для моего использования pysfml, поэтому ваш пробег может варьироваться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top