2015-01-02 19 views
5

Mam aplikację w pracy, która jest skonfigurowana z następującą strukturą.Jak mogę poinformować PyCharm o lokalizacji niestandardowych modułów?

/project_root 
    /applications 
     /app1 
      __init__.py 
     /app2 
      __init__.py 
     ... 
     /appN 
    /pkg 
     /database 
      __init__.py 
     /toolbox 
      __init__.py 
     ... 
     __init__.py 
    __init__.py 
    main_framework.py 

Badam za pomocą PyCharm (wydanie społecznościowe) zamiast narzędzia PyDev firmy Eclipse. W __init__.py w app1 mam instrukcji import, który wygląda tak:

import pkg.database 

pycharm skarży się na import z komunikatem no module named pkg.

PyCharm Error (kliknij aby powiększyć obrazek)

Ze względu na to, jak ramy jest zbudowany, choć system działa dobrze. Każdy z appN jest znany z katalogu pkg. Jak poinformować PyCharm, że mam niestandardowe moduły wbudowane w katalogu pkg, aby ostrzeżenia przestały działać?

Testuję wersję społecznościową PyCharm 4.0.3.

Kilka rzeczy próbowałem, dzięki za komentarze poniżej, które nie pomogły:

  • W oknie struktury projektu, project_root został wymieniony jako jedynego katalogu pod „ROOT Content” po prawej stronie ręka po stronie okna dialogowego. Dodałem katalog pkg, aby był również wymieniony. To nie miało wpływu.
  • W początkowej wersji pytania przegapiłem __init__.py w pkg podczas wyświetlania struktury. Ten plik istnieje.
+1

Zrobiłeś "project_root" jako źródło katalogu głównego dla twojego projektu? – nbro

+0

Spróbuj użyć 'project_root.pkg.database' mimo, że myślę, że to nie zadziała. Druga opcja, spróbuj zrobić również 'pkg' jako root, oznacz go jako' Source'. Jeśli to zadziała, to powiedz mi, a opublikuję to jako odpowiedź. Myślę, że drugi powinien działać. – nbro

+0

Druga opcja nie działała (ustawiłem ją jako 'Source', a następnie ponownie uruchomiłem PyCharm). Zastanowię się nad pierwszą opcją, jeśli nic innego nie pojawi się po prostu dlatego, że nie chcę modyfikować wszystkich skryptów 'appN', jeśli nie potrzebuję. – Andy

Odpowiedz

13

Rozwiązaniem tego problemu było procesem dwuetapowym:

  1. Dodaj katalog pkg jako korzeń źródłowego. Zrób to, wybierając File ->Settings ->Project -> (wybierz projekt) ->Project Structure, a następnie wybierz katalog pkg i dodaj, klikając przycisk Sources. Kliknij OK.
  2. Następnie wybierz File ->Invalidate Caches/Restart ->Invalidate and Restart

Poczekaj na pycharm zrestartować i odbudować to cache/skanowanie indeksów. Teraz katalog pkg jest wykrywany jako root źródłowy, a moje błędy zniknęły.

Powiązane problemy