Nierozwiązany problem odniesienia w PyCharm

Mam strukturę katalogów

├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

I mogę uzyskać dostęp do modułu sieciowego za pomocą sys.path.insert().

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

Jednak pycharm narzeka, że nie może uzyskać dostępu do modułu. Jak mogę nauczyć pycham rozwiązywania odniesienia?

Tutaj wpisz opis obrazka

Author: prosseek, 2014-01-20

11 answers

Ręczne dodanie go tak, jak to zrobiłeś jest rzeczywiście jednym ze sposobów zrobienia tego, ale istnieje prostsza metoda, a to jest po prostu mówienie pycharmowi, że chcesz dodać folder src jako źródło główne, a następnie dodanie źródła głównego do ścieżki Pythona.

W ten sposób nie musisz kodować rzeczy w Ustawieniach interpretera:

  • Dodaj src jako źródło treści:

                            Tutaj wpisz opis obrazka

  • następnie upewnij się, że Dodaj źródło do swojego PYTHONPATH:

Tutaj wpisz opis obrazka

  • Teraz import zostanie rozwiązany:

                      Tutaj wpisz opis obrazka

W ten sposób, możesz dodać cokolwiek chcesz jako źródło root, i wszystko będzie po prostu działać. Jeśli jednak nie oznaczyć go jako źródło root, otrzyma błąd:

                                  Tutaj wpisz opis obrazka

 554
Author: Games Brainiac,
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-01-20 18:59:32
  1. Sprawdź plik __init__.py w folderze src
  2. Dodaj folder src jako źródłowy root
  3. następnie upewnij się, aby dodać dodaj źródła do swojego PYTHONPATH (patrz wyżej)
  4. W menu PyCharm wybierz: File --> invalid Caches / Restart
 24
Author: Ukr,
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-01-10 23:23:04

Normalnie, $PYTHONPATH jest używany do uczenia interpretera Pythona, aby znaleźć niezbędne moduły. PyCharm musi dodać ścieżkę w preferencjach.

Tutaj wpisz opis obrazka

 14
Author: prosseek,
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-01-20 17:18:25

Po przetestowaniu wszystkich obejść, sugeruję, aby spojrzeć na Settings -> Project -> project dependencies i ponownie je zorganizować.

pycharm

 12
Author: mehdi,
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
2016-12-12 13:08:39

Jeśli ktoś nadal patrzy na to, przyjęta odpowiedź nadal działa dla PyCharm 2016.3, kiedy próbowałem. Interfejs może się zmienić, ale opcje są nadal takie same.

Ie. Kliknij prawym przyciskiem myszy na folderze głównym -- > 'Oznacz Katalog jako' -- > Source Root

 7
Author: AeroHil,
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-09-01 16:51:58

Ogólnie rzecz biorąc, jest to brakujący problem z pakietem, po prostu umieść karetkę w nierozwiązanym odnośniku i naciśnij Alt+Enter, aby ujawnić opcje, a następnie powinieneś wiedzieć, jak go rozwiązać.

 4
Author: Ch_y,
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-03-15 09:31:17

Zainstalować za pomocą PyCharm (działa z Community Edition). Otwórz Settings > Project > Project Interpreter, a następnie kliknij zieloną ikonę + na zrzucie ekranu poniżej. W drugim oknie dialogowym, które się otworzy, wprowadź nazwę pakietu i kliknij przycisk "Zainstaluj pakiet".

Tutaj wpisz opis obrazka

 2
Author: danday74,
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-02-17 14:38:49

Wiele razy zdarza się, że wtyczka nie jest zainstalowana. np.

Jeśli tworzysz projekt django i nie masz zainstalowanej wtyczki django w pyCharm, jest tam napisane błąd 'unsolved reference'. Refer: https://www.jetbrains.com/pycharm/help/resolving-references.html

 1
Author: Ranjeet,
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-11 10:12:11

Sprawdź, czy używasz odpowiedniego interpretera, który powinieneś. Otrzymywałem błąd "unsolved reference 'django'", aby rozwiązać ten problem, zmieniłem Interpreter projektu (zmieniłem Python 3 Na Python 2.7) z ustawień projektu: Wybierz projekt, przejdź do File - > Settings - > Project: - > Project Interpreter - > Brows i wybierz poprawną wersję lub Interpreter(np.

 0
Author: kishs1991,
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
2016-06-26 08:28:06

Po wykonaniu zaakceptowanej odpowiedzi, zrobienie następującej odpowiedzi rozwiązało ją dla mnie:

FileSettingsProject <your directory/project>Project Dependencies

Wybierz katalog / projekt, w którym znajduje się Plik z nierozwiązanymi importami i zaznacz pole, aby powiedzieć Pycharm, że ten projekt zależy od innego projektu.

Mój katalog jest nieco inny niż ten w pytaniu. Mój jest taki
├── MyDirectory  
│     └── simulate.py  
├── src  
│     ├── networkAlgorithm.py  
│     ├── ...

Mówienie Pycharmowi, że src zależy od MyDirectory rozwiązało problem dla mnie!

 0
Author: Benjamin,
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-05-16 14:34:45

Pycharm używa venv, w venv u należy zainstalować pakiety jawnie lub goto settings - >Project interpreter- >add interpreter- > inherit global site-packages

 -1
Author: yunus,
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-12-04 10:09:34