2015-12-29 20 views
11

Mam najnowszy PyCharm CE i używam go z virtualenv. Zdefiniowałem interpreter jako interpreter w virtualenv. Okno interpretera projektów w PyCharm zawiera listę wszystkich zainstalowanych pakietów. Potwierdziłem to, uruchamiając pip freeze > requirements.txt i ręcznie wykonując pakiety.PyCharm nie może znaleźć pakietów w virtualenv

Moim problemem jest to, że nie znajdzie pycharm pewien zawiera w jego okna edytora, jak Flask-Login:

W from flask.ext.login import current_user, login_user, logout_user, login_required includes wszystko current_user, login_user, logout_user, login_required oznaczone są jako odniesienia nierozwiązanych.

Czy brakuje mi czegoś?

+2

miałem ten problem raz i było zaledwie JetBrains będąc chromy. Wypróbuj 'File -> Invalidate Caches' i uruchom ponownie PyCharm.Być może będziesz musiał poczekać kilka minut, aby odbudować pamięć podręczną. – wim

+0

Nie działa dla mnie. – ruipacheco

Odpowiedz

22

Problem może polegać na tym, że PyCharm zbiera błędne "ścieżki interpretera" dla twojego wirtualnego środowiska. Przejdź tutaj:

PyCharm (menu) -> Preferences (Menu option) 
       -> Project: <name> (Dropdown) 
       -> Project Interpreter (Menu option) 
       -> 'Settings' button (Looks like a gear) 
       -> More (Menu option) 
       -> Select your virtualenv interpreter 
       -> Click 'Show paths for interpreter' button (on bottom of list window) 

Teraz, gdy jesteś w tym (co prawda pokrętnie znalezionych) lokalizacji, powinieneś zobaczyć ścieżki używane przez tego tłumacza. Jeśli moja teoria jest poprawna, wskazują one na globalne lokalizacje systemu. Aby dodać ścieżki środowiska wirtualnego, należy kliknąć przycisk + i dodać odpowiednie ścieżki istniejące w środowisku wirtualnym. Gdy skończysz, dobrze jest wybrać globalne ścieżki systemowe i kliknąć -, aby je usunąć. Kliknij Zastosuj i przejdź do File -> Invalidate caches/Restart, aby ponownie załadować PyCharm.

Powinno to spowodować, że Twój tłumacz będzie wskazywał prawidłową lokalizację bibliotek, które zainstalowałeś w swoim virtualenv, i nie powinieneś już otrzymywać błędu importu. Zauważ, że nawet z tą poprawką nie zobaczysz swoich bibliotek pod Project Interpreter, ale powinny one być ładowane.

+0

To jest prawidłowa procedura (choć jest to trochę śmieszne, że PyCharm jest tak prymitywny w tych rzeczach). – gented

+0

To jest szalone. Dzięki za wskazanie tego. – newlog

0

Otwórz Preferences -> Project -> Project Interpreter, czy widzisz tam moduł?

Jeśli tak, możesz mieć inny plik gdzieś w projekcie o tej samej nazwie, co flask.ext.login, co zapobiega zlokalizowaniu właściwego modułu przez pycharm.

Jeśli nie, możesz kliknąć na ... obok swojej tłumacza i wybierz more... wybierz tłumacza i na dole (obok filtra), kliknij Show paths for the selected interpreter można dodać ścieżkę modułu tam.

+0

Wypróbowałem, co zasugerowałeś, ale nie zadziałało to dla mnie. Stworzyłem nawet nowy virtualenv z pypy, ale te same elementy nie zostały znalezione. – ruipacheco

+0

Przepraszam, nie mam pojęcia, jak rozwiązać problem. –

3

W najnowszej wersji 2016.1.4 pycharm (w moim przypadku):

  • Ustawienia
  • projektu: nazwa projektu
    • Interpreter projekt
    • po prawej stronie pojawią być rozwijanym menu, w którym możesz wybrać tłumacza. Powinny być dostępne opcje venv.

patrz obrazek poniżej dla lepszego wyjaśnienia (jak mówili, 1 obraz wart tysiące słów)

Setting python interpreter