2013-12-16 2 views
0

У меня есть этот скрипт, который считывает штрих-коды с изображений.Сценарий работает только в установленном каталоге Python

from PIL import Image 
import zbar 

scanner = zbar.ImageScanner() 
scanner.parse_config('enable') 
pil = Image.open('zbartest2.png').convert('L') 
width, height = pil.size 
raw = pil.tostring() 
image = zbar.Image(width, height, 'Y800', raw) 
scanner.scan(image) 

for symbol in image: 
    print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data 
del(image) 

Когда я поставил этот скрипт в питоне основной каталог, который C:\Python27 работает без каких-либо проблем.

Однако, когда я поставил этот скрипт вне основного каталога, такого как C:\myscript, он дает мне ошибку, говоря, что import zbar - module The specified module could not be found.

В чем причина проблемы?

Я использую Python 2.7 32bits на Windows Xp 32bits SP3

EDIT:

Я уверен, выполнение его из IDLE окна с помощью команды модуля запуска (F5) , полный отслеживающий

Traceback (most recent call last): 
    File "C:\myscript\test.py", line 2, in <module> 
    import zbar 
ImportError: DLL load failed: The specified module could not be found. 

, когда я типа в import zbar; print zbar.__file__ я получаю следующее Msg

C:\Python27\lib\site-packages\zbar.pyd 
+5

Что такое * полная * трассировка (т. Е. Скопировать/вставить все, напечатанное в командной строке)? Как вы выполняете этот скрипт? – Blender

+1

Что вы получите, если запустите следующую команду в 'c: \ python27':' import zbar; print zbar .__ file__'? – falsetru

+0

Какой модуль? Какая именно ошибка вы получаете? –

ответ

-3

Убедитесь, что все файлы, которые вы импортируете в том же каталоге, как этот сценарий

+1

Все импортированные файлы не обязательно должны быть тем же самым каталогом, что и скрипт, поэтому этот ответ просто неверен. – martineau

0

Кажется длл находится в C: \ python27, но C: \ python27 не в пути поиска. Попробуйте добавить

import sys 

sys.path.append("C:\Python2.7") 

к вашему коду перед импортом zbar.

Если вы работаете правильно, вам нужно настроить пути поиска python, чтобы добавить C: \ Python27. Я работаю над linux, извините, я не могу помочь вам сделать это в Windows.

EDIT: Ну, я не люблю писать в ответ, что я не знаю, как что-то сделать. Поэтому я занимаюсь некоторыми исследованиями, которые ищут некоторые документы, которые помогут мне разобраться в вашей проблеме. И нашел его здесь importing PYD files.

+0

Одним из способов ручной настройки пути поиска Python является изменение файла 'site.py' в стандартной библиотеке. Этот модуль автоматически импортируется при запуске интерпретатора Python (если это не запрещено с помощью командной строки). Дополнительную информацию см. В разделе «Путь поиска Python» (http://docs.python.org/release/2.7.6/install/index.html#modifying-python-s-search-path) в онлайн-документации. – martineau

Смежные вопросы