Nierozwiązane problemy z importem PyDev i Eclipse

Jestem nowy w PyDev i Pythonie, choć używałem Eclipse dla Javy. Próbuję pracować nad niektórymi przykładami Pythona i wydaje mi się, że jest to niezwykle trywialny problem, który po prostu staje się niezwykle irytujący. Używam Ubuntu Linux 10.04.

Chcę móc korzystać z pliku odbchelper.py, który znajduje się w katalogu /Desktop/Python_Tutorials/diveintopython/py

Oto mój example.py plik, nad którym pracuję w moim projekcie PyDev / Eclipse:

import sys
sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py")

To działa dobrze, ale potem chcę, aby następna linijka mojego kodu była:

import odbchelper

I to powoduje nierozwiązany błąd importu za każdym razem. Dodałem Pliki __init__.py do prawie każdego katalogu i nic to nie pomaga. Próbowałem dodawać pliki __init__.py pojedynczo do różnych poziomów katalogów między lokalizacją projektu a odbchelper.py plik, a ja też próbowałem dodać __init__.py pliki do wszystkich katalogów pomiędzy jednocześnie. Żadne nie działa.

All I chcesz mieć projekt gdzieś w innym katalogu, powiedzmy /Desktop/MyStuff/Project, w którym mam example.py ... a potem od example.py chcę importować odbchelper.py od /Desktop/Python_Tutorials/diveintopython/py/

Każda odpowiedź forum mogę znaleźć po prostu mówiąc, aby użyć funkcji sys.path.append(), aby dodać ten katalog do mojej ścieżki, a następnie zaimportować go ... ale to właśnie robię w moim kodzie i to nie działa.

Próbowałem również Ctrl-1 trick, aby stłumić komunikat o błędzie, ale program nadal nie działa poprawnie. Dostaję błąd, ImportError: No module named odbchelper. Więc najwyraźniej nie jest to dodawanie ścieżki, lub jest jakiś problem, że wszystkie moje liczne permutacje dodawania __init__.py plików zostały pominięte.

To bardzo frustrujące, że coś tak prostego... wywoływanie rzeczy z jakiegoś pliku, który istnieje gdzieś indziej na mojej maszynie... wymaga tego wiele wysiłku.
Author: jessag, 2011-01-08

10 answers

We właściwościach twojego projektu pydev znajduje się panel o nazwie "PyDev - PYTHONPATH", z pod-panelem o nazwie "External Libraries". Możesz dodać foldery źródłowe (każdy folder, który ma __init__.py) do ścieżki za pomocą tego panelu. Twój kod projektu będzie mógł importować moduły z tych folderów źródłowych.

 125
Author: David German,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-19 19:18:01

Właśnie uaktualniłem projekt WXWindows do Pythona 2.7 i nie miałem żadnych problemów z rozpoznaniem nowego interpretera przez Pydev. Zrobiłem to samo co wyżej konfigurując interpreter, zrobiłem nową instalację Eclipse i Pydev. Myślałem, że jakaś część Pythona musiała być uszkodzona, więc ponownie zainstalowałem wszystko. Arghh! Zamknął i ponownie otworzył projekt i ponownie uruchomił Eclipse pomiędzy tymi wszystkimi zmianami.

W końcu zauważyłeś ,że możesz "usunąć konfigurację projektu PyDev" klikając prawym przyciskiem myszy na projekt. Następnie można go ponownie przekształcić w projekt PyDev, teraz jest dobry jak złoto!

 40
Author: Paul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-29 18:54:15

Używam eclipse kepler 4.3, PyDev 3.9.2 i na moim ubuntu 14.04 spotkałem się z tym samym problemem. Próbowałem i spędziłem godziny, z wszystkich powyższych większość opcji, ale na próżno. Potem wypróbowałem następujące, co było świetne:

  • Select Project -> RightClick-> PyDev-> Remove Pydev Project Config
  • file - > restart

A ja używałem Pythona 2.7 jako interpretera, chociaż to chyba nie działa.

 35
Author: BitByte_Bake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 16:07:52

Naprawiłem pythonpath i wszystko było elegancko, kiedy importowałem rzeczy przez konsolę, ale wszystkie te wcześniej nierozwiązane importy były nadal oznaczone jako błędy w kodzie, bez względu na to, ile razy restartowałem eclipse lub odświeżałem / czyściłem projekt.

Kliknąłem prawym przyciskiem myszy projekt - > Pydev - > usuń znaczniki błędów i pozbył się tego problemu. Nie martw się, jeśli twój kod zawiera rzeczywiste błędy, zostaną one ponownie oznaczone.

 17
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-04 18:38:59

Project-- > properties-- > pydev-pythonpath-- > external libraries -- > add source folder, add the PARENT FOLDER of the project. Następnie uruchom ponownie eclipse.

 8
Author: zhaokongsheng,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-25 07:05:11

Oto, co dla mnie zadziałało (sugested by soulBit):

1) Restart using restart from the file menu
2) Once it started again, manually close and open it.

Jest to najprostsze rozwiązanie w historii i całkowicie usuwa irytujące rzeczy.

 4
Author: Brana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-13 02:43:31

Istnieją dwa sposoby rozwiązania tego problemu:

  • Usuń interpreter Pythona z "interpreterów Pythona" i dodaj go ponownie.
  • lub po prostu Dodaj folder z bibliotekami w interpreterze, którego używasz w swoim projekcie, w moim przypadku używałem "bottle", a folder, który dodałem, to "c:\Python33\Lib\site-packages\bottle-0.11.6-py3.3.jajko "

Teraz już nie widzę błędu, a funkcja uzupełniania kodu działa również z "butelką".

 1
Author: PachinSV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-05 07:04:07

Używam Eclipse 4.2.0 (Juno) i PyDev 2.8.1 i napotkałem ten problem z lib zainstalowanym na mojej stronie-packages path. Zgodnie z tym pytaniem:

Pydev i *.pliki pyc

...jest problem z plikami PyDev i pyc. W przypadku konkretnej lib, do której próbowałem się odwołać, dostarczane są tylko pliki pyc.

Oto, co zrobiłem, aby rozwiązać ten problem:

  1. zainstaluj uncompyle2 z https://github.com/Mysterie/uncompyle2
  2. Uruchom uncompyle2 przeciwko *.pliki pyc w site-packages lib. Przykład:

    Uncompyle2 -r-o /tmp /path/to/site-packages/lib

  3. Zmień nazwę wynikowego*.pliki pyc_dis produkowane z uncompyle2 do*. py
  4. Przenieś / skopiuj te pliki*. py do ścieżki site-packages
  5. W Eclipse wybierz File > Restart

Nierozwiązany błąd importu odnoszący się do .pliki pyc powinny teraz zniknij.

 1
Author: MutantXenu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:41

Po, moim zdaniem rozwiąże problem

  1. dodanie init . py do folderu" ~/Desktop/Python_Tutorials/diveintopython/py "
  2. Przejdź do okna -- > Preferencje -- > PyDev -- > interpretery -- > Interpreter Pythona, aby usunąć ustawienie interpretera Pythona (powodem jest to, że PyDev nie może automatycznie odświeżyć żadnych aktualizacji wprowadzonych do dowolnego systemu PythonPath)
  3. Dodaj Interpreter z tymi samymi szczegółami co poprzednio (to odświeży Twój Interpreter Pythona ustawienie z aktualizacjami wykonanymi w PythonPath)
  4. wreszcie, ponieważ twój folder "~/Desktop/Python_Tutorials/diveintopython/py" nie jest standardową ścieżką PythonPath, musisz go dodać. Istnieją dwa sposoby, aby to zrobić

A. zgodnie z sugestią Davida germana. Jednak dotyczy to tylko konkretnych projektów, w których jesteś b. dodać w "~ / Desktop / Python_Tutorials/diveintopython / py" do nowej ścieżki PythonPath w oknie --> Preferencje --> PyDev --> interpretery --> Interpreter Pythona --> Libraries subtab -- > NewFolder

Mam nadzieję, że to pomoże.

 0
Author: Ridwan Kurniawan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-05 02:02:47
KD.py

class A:
a=10;

KD2.py 
from com.jbk.KD import A;
class B:
  b=120;

aa=A();
print(aa.a)

To działa idealnie dla mnie

Innym przykładem jest

main.py
=======
from com.jbk.scenarios.objectcreation.settings import _init
from com.jbk.scenarios.objectcreation.subfile import stuff

_init();
stuff();

settings.py
==========
def _init():
print("kiran")


subfile.py
==========
def stuff():
print("asasas")    
 -1
Author: Java By Kiran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-25 19:48:47