LINUX.ORG.RU

Python — не импортируется библиотека!


0

0

Запускаю чужой скрипт:


[root@testbed lucas]# ./AudioCrop.pm in/ out/
Using in//Transcript.txt as transcript file.

...

/opt/g2p/bin/g2p.py:37: DeprecationWarning: the sets module is deprecated
import math, sets, sys
Traceback (most recent call last):
File «/opt/g2p/bin/g2p.py», line 38, in <module>
import SequiturTool
ImportError: No module named SequiturTool
g2p.py mv AudioBook/interim_files/dlog AudioBook/interim_files/logs/dlog1 failed: 256 at AudioBook/Dictionary.pm line 139
AudioBook::Dictionary::getG2PPronunciations('AudioBook::Dictionary=HASH(0x8cb3c14)', 'AudioBook/interim_files/MissingWords_out') called at AudioBook/MissingWords.pm line 85
AudioBook::MissingWords::getText('AudioBook::MissingWords=HASH(0x8cb3b64)') called at AudioBook/Chapter.pm line 69
AudioBook::Chapter::processText('AudioBook::Chapter=HASH(0x8c3b5cc)') called at ./AudioCrop.pm line 115
AudioCrop::crop('AudioCrop=HASH(0x8a728c4)') called at ./AudioCrop.pm line 51

Проверяю, установлены ли пути:


[root@testbed lucas]# echo ${PYTHONPATH}
/opt/g2p/lib/python2.6/site-packages
[root@testbed lucas]# ls ${PYTHONPATH}
Evaluation.py Minimization.py SequenceModel.py sequitur.pyc symbols.py
Evaluation.pyc Minimization.pyc SequenceModel.pyc _sequitur_.so symbols.pyc
g2p.py misc.py sequitur-perpetually_alpha-py2.6.egg-info SequiturTool.py tool.py
g2p.pyc misc.pyc sequitur.py SequiturTool.pyc tool.pyc
[root@testbed lucas]# python
Python 2.6.2 (r262:71600, Jun 4 2010, 18:28:04)
[GCC 4.4.3 20100127 (Red Hat 4.4.3-4)] on linux2
Type «help», «copyright», «credits» or «license» for more information.

import sys

sys.path

[", '/opt/g2p/lib/python2.6/site-packages', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/PIL', '/usr/lib/python2.6/site-packages/gst-0.10', '/usr/lib/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages/webkit-1.0']

Проверяю импорт из командной строки:


import SequiturTool

/opt/g2p/lib/python2.6/site-packages/sequitur.py:30: DeprecationWarning: the sets module is deprecated
import itertools, math, sets, sys
Traceback (most recent call last):
File «<stdin>», line 1, in <module>
File «/opt/g2p/lib/python2.6/site-packages/SequiturTool.py», line 34, in <module>
from sequitur import Sequitur, ModelTemplate, DefaultDiscountAdjuster, StaticDiscounts, FixedDiscounts, EagerDiscountAdjuster
File «/opt/g2p/lib/python2.6/site-packages/sequitur.py», line 32, in <module>
import sequitur_, SequenceModel, Minimization, misc
ImportError: No module named sequitur_


Почему так? Почему не импортируется и почему ошибка другая?

Нашел. Оказывается, в скрипте прямо устанавливается

export PYTHONPATH=/usr/local/lib/python2.6/site-packages

Как мне правильно поступить?

1) Исправить скрипт, чтоб путь был мой? 2) Установить g2p туда, куда ссылается этот скрипт? 3) установить sys.path вручную из питона перед запуском скрипта?

Dims2000 ()
Ответ на: комментарий от Dims2000

> export PYTHONPATH=/usr/local/lib/python2.6/site-packages

Просто закоментируй эту строку.

shelA ()
Ответ на: комментарий от true_admin

> перловый скрипт запускает питонячий, забавно.

А что забавного? Обычно наоборот?

Dims2000 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.