2017-01-11 10 views
1

PyDev с Python3.5 кажется неспособным распознавать импорт из скомпилированных расширений, включая пакеты, скомпилированные через Cython.Pydev теги импортируют как «неразрешенный импорт» все скомпилированные расширения

Я работаю над современной дебиантной/растяжкой машиной с укороченным самонастраивающимся (в домашнем каталоге) Eclipse/Neon с PyDev, добавленным через сайт обновлений, если это имеет значение.

У меня установлены оба «Python 2.7.13» и «Python 3.5.2+».

Одним из проблемных пакетов является lxml. Я установил пакеты debian, а также попытался установить вручную через pip (и впоследствии восстановил интерпретатор в eclipse, чтобы обеспечить полный поиск). Во всех случаях пакеты do работа.

В Python2 все работает так, как рекламируется.

Под Python3 Pydev флаги from lxml import etree, как ошибка (но в результате программы работы):

Unresolved import: etree richiedi_certificato_dispositivo.py /trasmissione-telematica/Serializzazione line 8 PyDev Problem 

Примечание: I можетimport lxml без ошибок, но тогда любой доступ к lxml.etree... будет помечена по ошибке. Выполнение данных согласовано (т. Е .: etree не будет в предлагаемом списке).

lxml устанавливается в обычном месте:

[email protected]:~$ ls -l /usr/lib/python3/dist-packages/lxml 
total 2156 
-rw-r--r-- 1 root root 8152 Sep 5 2014 builder.py 
-rw-r--r-- 1 root root 3366 May 5 2016 cssselect.py 
-rw-r--r-- 1 root root 18387 May 5 2016 doctestcompare.py 
-rw-r--r-- 1 root root 7641 Sep 25 2011 ElementInclude.py 
-rw-r--r-- 1 root root 9490 Aug 20 06:48 _elementpath.py 
-rw-r--r-- 1 root root 1710088 Aug 24 10:14 etree.cpython-35m-x86_64-linux-gnu.so 
drwxr-xr-x 3 root root 4096 Jan 3 08:58 html 
drwxr-xr-x 3 root root 4096 Jan 3 08:58 includes 
-rw-r--r-- 1 root root  551 Oct 7 2012 __init__.py 
drwxr-xr-x 4 root root 4096 Jan 3 08:58 isoschematron 
-rw-r--r-- 1 root root 17450 Aug 20 06:48 lxml.etree_api.h 
-rw-r--r-- 1 root root 8902 Aug 20 06:48 lxml.etree.h 
-rw-r--r-- 1 root root 366440 Aug 24 10:14 objectify.cpython-35m-x86_64-linux-gnu.so 
drwxr-xr-x 2 root root 4096 Jan 3 08:58 __pycache__ 
-rw-r--r-- 1 root root  92 Sep 5 2014 pyclasslookup.py 
-rw-r--r-- 1 root root 8531 Nov 20 2014 sax.py 
-rw-r--r-- 1 root root  230 Sep 25 2011 usedoctest.py 
[email protected]:~/trasmissione-telematica$ 

Как Вы можете видеть etree в общей Lib, как objectify; быстрый просмотр показывает, что объектная информация не обрабатывается PyDev. Я проверил несколько других пакетов «c-extension» (например, import pycurl и from Crypto.Util import strxor) с тем же результатом, поэтому кажется проблемой с расширениями «C».

+0

Вы когда-нибудь находили подходящее решение для этого? (У меня точно такая же проблема, но я не могу использовать xml.etree ...) –

+1

@TonnyMadsen: к сожалению, нет. Они по-прежнему помечены как ошибки, но все работает (не считая завершения, конечно). Если вы сможете найти решение, сообщите мне. – ZioByte

ответ

2

Вы пытались поместить повреждающие пакеты в форсированные встроенные модули (как описано в http://www.pydev.org/manual_101_interpreter.html)?

Если это не работает, есть ли у вас ошибка в журнале ошибок? (см. http://www.pydev.org/faq.html#PyDevFAQ-HowdoIReportaBUG%3F для получения подробной информации о его получении)