2015-07-21 3 views
0

Мне нужно проверить файл XML на XSD. Для этого я хотел бы использовать lxml library. Проблема заключается в том, что даже если у меня есть from lxml import etree и установили LXML к C:\Python33\Lib\site-packages\lxml\, я получаю ошибкуlxml установлен, но не работает в Windows

Traceback (most recent call last): 
    File "C:\Users\asmithe\Documents\dev1\TestParse.py", line 3, in <module> 
    from lxml import etree as ET_l 
ImportError: No module named lxml 

Почему это и как я могу это исправить? Я попытался добавить C:\Python33\Lib\site-packages\lxml\ к переменной PATH, и это не помогло. Я установил lxml с помощью PIP.

UPDATE: Когда я запускаю скрипт с помощью интерактивного терминала (т.е. набрав python в ЦМД) можно import lxml

Вот простой скрипт

from lxml import etree 

def main(): 
    print('hi') 


if __name__ == "__main__": 
    main() 

В ЦМД я

C:\Users\dev1\Documents\test>python 
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:35:05) [MSC v.1600 64 bit (AM 
D64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from lxml import etree 
>>> 
>>> def main(): 
...  print('hi') 
... 
>>> 
>>> if __name__ == "__main__": 
...  main() 
... 
hi 
>>> exit() 

Однако, если я попытаюсь запустить его

> ImportLxml.py 

тогда я получаю

C:\Users\dev1\Documents\test>ImportLxml.py 
Traceback (most recent call last): 
    File "C:\Users\dev1\Documents\XML test\TestImport.py", line 1, in <module> 

    from lxml import etree 
ImportError: No module named lxml 

Вот все вещие записей в среде PATH переменной

C:\Python33\; 
C:\Python33\Scripts; 
C:\Python33\Lib\site-packages\lxml\ 
%ARCGISINSALLDIR%\arcpy; 
+0

У вас есть несколько установок python в вашей системе? –

+0

@AnandSKumar да Python 2.7 и 3.3 (и я намерен использовать 3.3). Вы спрашиваете, есть ли у меня несколько установок lxml? В папке 'C: \ Python33 \ Lib \ site-packages' находятся подпапки' lxml' и 'lxml-3.4.4.dist-info'. – Celeritas

+0

Можете ли вы сделать - 'import sys; sys.version' внутри терминала python, где вы получаете ошибку импорта библиотеки. –

ответ

2

Настройка Python Launcher for Windows использовать 3.3.5 по умолчанию:

py -3 

Альтернативно - если вы решили установить Python Launcher при последней установке Python - begin your script with a shebang which the Python Launcher will recognize as requesting Python 3:

#! python3 

Если вы решили не устанавливать Python Launcher для Windows, при установке Python 3.3 см the install documentation для ручных шагов:

Associate правильной группы файлов с .py сценариев:

assoc .py=Python.File 

Перенаправление все файлы Python в новый исполняемый файл:

ftype Python.File=C:\Path\to\pythonw.exe "%1" %* 

Это может быть использован для настройки типа для Python.File интерпретатору Python по вашему выбору, то есть. что для 3.3.5. (В качестве передового опыта Python.File следует указывать на py.exe или python.exe; приведенный выше пример представляет собой прямую цитату из документов, но тем не менее плохую практику).


С другой стороны, если у вас есть py.exe на диске (устанавливается с Python 3.3), но он не используется, вы можете изменить эти инструкции немного:

Свяжите правильную группу файлов с ,ру скрипты:

assoc .py=Python.File 

перенаправлять все файлы Python для нового исполняемого файла:

ftype Python.File=C:\Path\to\py.exe "%1" %* 

... снова, регулируя путь будет соответствовать, где вы установили Python 3.3.x.

+0

«Настройте Python Launcher для Windows, чтобы использовать 3.3.5 по умолчанию:« Я не могу понять, как это сделать. Я добавил '#! python3' и '#! C: \ python33 \ python.exe', и я попытался выполнить [эти инструкции] (http://www.7tutorials.com/how-set-your-default-programs-windows-7), но я не могу получить его по умолчанию используется интерпретатор python 3. – Celeritas

+0

Не следуйте этим инструкциям - следуйте инструкциям, указанным в Python, в программе установки. Есть причина, по которой я их связывал. –

+0

вы также можете использовать 'ftype' для связывания файлов Python с' py.exe'. –

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