2012-06-17 5 views
4

Я совершенно новый для Python и хотел использовать модуль py2neo и торнадо.Как и где Python ищет модули?

Для того, чтобы сделать это, я побежал setup.py для обоих модулей и помещают их в папки

C:\Python32\modules\py2neo 

и

C:\Python32\modules\tornado 

В основной программе я предполагаю, эти строки говорят интерпретатор куда искать файлы:

import sys 
sys.path.append(r'C:\Python32\modules') 



# Import Neo4j modules 
from py2neo import neo4j, cypher 

Чтение книги Я также добавил переменную окружения (в Wi ndows 7)

PYTHONPATH = C:\Python32\modules;C:\Python32\modules\tornado;C:\Python32\modules\py2neo 

Редактировать

Теперь я понял, что Python Shell должен быть перезапущен, чтобы загрузить измененную переменную PYTHONPATH В случае переменная величина PYTHONPATH = C:\Python32\modules и программа содержит строку

from py2neo import neo4j, cypher 

тогда следующие строки бесполезны:

import sys 
sys.path.append(r'C:\Python32\modules') 

Когда я запускаю программу, однако я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "C:\...\Python Projects\HelloPython\HelloPython\Hellopy2neo.py", line 15, in <module> 
    from py2neo import neo4j, cypher 
    File "C:\Python32\modules\py2neo\neo4j.py", line 38, in <module> 
    import rest, batch, cypher 
ImportError: No module named rest 

В файле neo4j.py имеются следующие строки:

try: 
    import json 
except ImportError: 
    import simplejson as json 
try: 
    from urllib.parse import quote 
except ImportError: 
    from urllib import quote 
try: 
    from . import rest, batch, cypher 
except ImportError: 
    import rest, batch, cypher #line38 

и rest.py файл находится в папке C:\Python32\modules\py2neo, так что я не знаю, почему я получаю ошибку

ImportError: No module named rest

edit2:

Попытка импортировать py2neo directoy в оболочке Python и список модулей я получаю:

>>> import py2neo 
>>> [name for name in dir(py2neo) if name[0] != '_'] 
['rest'] 

Я предполагаю, что есть некоторые ненужным импорта, а также и был бы очень благодарен, если кто-нибудь объяснил, что следует добавить и исключен импорт (в PYTHONPATH и скриптах), чтобы программа работала без ошибок.

+0

Имеет ли 'C: \ Python32 \ modules \ py2neo' файл с именем' __init __. Py' в нем? –

+0

@LevLevitsky Да, да. –

+0

Существует ли каталог модулей 'rest', и находится ли он в соответствующем месте? –

ответ

0

Я подозреваю, что проблема в том, что import синтаксиса для относительного импорта изменился при переходе from Python 2 to Python 3:

The only acceptable syntax for relative imports is from .[module] import name. All import forms not starting with . are interpreted as absolute imports.

В вы установили использовать синтаксис, который будет работать в Python 2. Модули Вы можете либо установить их на Python 2, или найдите версию py2neo, которая поддерживает Python 3, или попытайтесь ее вручную поместить (строка import должна выглядеть как from . import rest, но позже вы столкнетесь с другими проблемами) или с помощью инструмента 2to3.

Обновление: Я попытался установить py2neo с pip. Это не удалось для Python3 и успешно завершилось для Python 2. Версия 1.2.14.

+0

спасибо! Я попытался использовать инструмент 2to3 для обновления синтаксиса, но, к сожалению, получил ту же ошибку в Python 3.2 –

+0

@NikoGamulin Изменилось ли это выражение 'import'? Когда я портировал свой собственный модуль на Python3 с помощью '2to3', он заменил все локальные импорты на новый синтаксис. –

+0

Нет, я просто разместил вывод здесь http://stackoverflow.com/questions/11071037/how-to-use-2to3-tool-in-windows –

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