Найти - Пользователи
Полная версия: Проблема с PythonMoleculeViewer
Начало » Python для новичков » Проблема с PythonMoleculeViewer
1
GeorgyKurakin
Добрый день всем!
Я занимаюсь био- и хемоинофрматикой, у меня установлен PythonMoleculeViewer (PMV).
Сегодня скачал новую программку для молекулярного моделирования, PharmDock. К ней скрипт прилагается питоновский, чтобы интегрировать её в графическую оболочку.
Пытаюсь прочитать скрипт в питоне, он мне выдаёт вот такое сообщение об ошибке.

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) on win32
Type “copyright”, “credits” or “license()” for more information.

****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************

IDLE 1.2.2 ==== No Subprocess ====
>>> Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560, in doit
execfile( filename, glob)#, localDict)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 3-9: ordinal not in range(128)
ERROR *********************************************
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\VF.py”, line 898, in tryto
result = command( *args, **kw )
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 567, in doit
warnings.warn('the exception reported above occured while sourcing **** ‘+filename+’ ****')
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 62, in warn
globals)
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 126, in warn_explicit
showwarning(message, category, filename, lineno)
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 61, in idle_showwarning
file.write(warnings.formatwarning(message, category, filename, lineno))
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 72, in idle_formatwarning
s += “%s: %s\n>>> ” % (category.__name__, message)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 61-67: ordinal not in range(128)
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560, in doit
execfile( filename, glob)#, localDict)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 3-9: ordinal not in range(128)
ERROR *********************************************
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\VF.py”, line 898, in tryto
result = command( *args, **kw )
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 567, in doit
warnings.warn('the exception reported above occured while sourcing **** ‘+filename+’ ****')
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 62, in warn
globals)
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 126, in warn_explicit
showwarning(message, category, filename, lineno)
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 61, in idle_showwarning
file.write(warnings.formatwarning(message, category, filename, lineno))
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 72, in idle_formatwarning
s += “%s: %s\n>>> ” % (category.__name__, message)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 61-67: ordinal not in range(128)
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560, in doit
execfile( filename, glob)#, localDict)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 3-9: ordinal not in range(128)
ERROR *********************************************
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\VF.py”, line 898, in tryto
result = command( *args, **kw )
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 567, in doit
warnings.warn('the exception reported above occured while sourcing **** ‘+filename+’ ****')
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 62, in warn
globals)
File “C:\Program Files\MGLTools-1.5.6\lib\warnings.py”, line 126, in warn_explicit
showwarning(message, category, filename, lineno)
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 61, in idle_showwarning
file.write(warnings.formatwarning(message, category, filename, lineno))
File “C:\Program Files\MGLTools-1.5.6\lib\idlelib\PyShell.py”, line 72, in idle_formatwarning
s += “%s: %s\n>>> ” % (category.__name__, message)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 61-67: ordinal not in range(128)
Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560, in doit
execfile( filename, glob)#, localDict)
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 3-9: ordinal not in range(128)


Он мне такое выдаёт и при попытке записать/прочитать файлы наших, молекулярных, специфических форматов (сессия PMV, файлы структуры белка RDBQT и иже с ними). Та же самая ошибка: UnicodeEncode Error.

Пытался почитать про неё, но так и не понял, в чём дело у меня.

Кто-нибудь может подсказать, что это такое и как решить проблему?
Заранее спасибо.

P. S. Скрипт прикрепляю. Также вы можете посмотреть его здесь: Скрипт на сайте производителя
vic57
http://webhamster.ru/mytetrashare/index/mtb0/13566385393amcr1oegx
1 минута гугла
GeorgyKurakin
Vic57, пробовал в самом начале прописать кодировку UTF-8 и то, что рекомендуют в самом конце присланной Вами статьи. Скрипт сохранят в Notepad++, кодировку менял на UTF-8 перед этим. Та же ошибка, та же проблема. По-прежнему система жалуется на ошибку с ASCII. Не могу понять, почему он всё за ASCII цепляется и на UTF-8 не переключается?
doza_and
Слепой метод не всегда помогает.
поставьте брейк на
C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560
или пропишите в файле в этом месте обработку ошибки с записью в файл того что передается в execfile.

Сразу станет понятно в чем дело.

Похоже у вас в путях файлы с названиями на русском. но бывают и другие варианты.
GeorgyKurakin
Doza_and, а Вы не могли бы подсказать, как это делается? Что именно надо прописывать?
Просто я в программировании не понимаю ровно ничего.
Что такое брейк (насколько я знаю, break – это команда “Разорви цикл!”)? Чем он мне поможет и как его прописать?
И как прописать обработку ошибки?
И в какое место в скрипте писать эти инструкции?

Что касается путей. У меня файлы, к которым ведут пути, называются по-английски. А вот папки, в которых находятся файлы (и, соответственно, присутствующие в путях), называются по-русски. Может быть, дело в этом? Все пути должны быть целиком на латинице?
GeorgyKurakin
Переименовал папку по-английски. Ошибка кодировки пропала. Видимо, дело в этом.
Но теперь программа выводит другую ошибку.

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) on win32
Type “copyright”, “credits” or “license()” for more information.

****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************

IDLE 1.2.2 ==== No Subprocess ====
>>> Traceback (most recent call last):
File “C:\Program Files\MGLTools-1.5.6\lib\site-packages\ViewerFramework\customizationCommands.py”, line 560, in doit
execfile( filename, glob)#, localDict)
File “DPharmDock scripts/PharmDock.py”, line 15, in <module>
from pymol import cmd, stored, util
ImportError: No module named pymol

Что делать теперь?
doza_and
установить модуль pymol или если он у вас есть… сделать чтобы питон его видел
GeorgyKurakin
Doza_and, ладно, если дойдут руки до модуля, напишу сюда ещё раз, с вопросом, как этом делается. Просто, после того как я все пути латиницей переименовал, ошибка кодировки исчезла, и ситуация с AutoDock (он тоже на базе питона) нормализовалась. Буду сейчас пытаться решить свою задачу через AutoDock.
Спасибо огромное, что навели меня на мысль! Я и не подозревал, что надо просто пути переименовать латиницей! Ларчик, как говорят, просто открывался.
Спасибо ещё раз огромное!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB