2017-01-11 3 views
1

PyDev mit Python3.5 scheint Importe aus c-kompilierten Erweiterungen nicht zu erkennen, einschließlich Paketen, die über Cython kompiliert wurden.Pydev-Tags importieren als "nicht aufgelöster Import" alle kompilierten Erweiterungen

Ich arbeite an einer aktuellen debian/stretch-Maschine mit einer abgespeckten selbstinstallierten (in home dir) Eclipse/Neon mit PyDev hinzugefügt über Update-Site, wenn es darauf ankommt.

Ich habe sowohl "Python 2.7.13" und "Python 3.5.2+" installiert.

Eines der problematischen Pakete ist lxml. Ich habe die Debian-Pakete installiert und habe auch versucht, manuell über pip zu installieren (und den Interpreter danach in Eclipse neu erstellt, um das vollständige Finden sicherzustellen). In allen Fällen funktionieren die Pakete do.

In Python2 funktioniert alles wie angekündigt.

Unter Python3 PyDev Flaggen from lxml import etree als Fehler (aber resultierende Programm funktioniert):

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

Hinweis: I kannimport lxml ohne Fehler, aber dann jeder Zugriff auf lxml.etree... wird in Fehler angezeigt werden. Datenvervollständigung ist konsistent (d.h. etree wird nicht in der angebotenen Liste sein).

lxml wird in der üblichen Stelle installiert:

[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$ 

Wie Sie sehen können etree in einem gemeinsamen lib ist, wie objectify ist; eine schnelle Überprüfung zeigt auch, dass objectify von PyDev nicht bearbeitet wird. Ich überprüfte ein paar andere "c-Erweiterung" -Pakete (z. B. import pycurl und from Crypto.Util import strxor) mit dem gleichen Ergebnis, so scheint es ein Problem mit "C" -Erweiterungen.

+0

Haben Sie jemals eine geeignete Lösung gefunden? (Ich habe genau das selbe Problem, kann aber xml.etree nicht verwenden ...) –

+1

@TonnyMadsen: leider nicht. Sie werden immer noch als Fehler markiert, aber alles funktioniert (abgesehen von der Fertigstellung natürlich). Wenn Sie eine Lösung finden, informieren Sie mich bitte. – ZioByte

Antwort

Verwandte Themen