Widocznosc importow

Widocznosc importow
0

Cześć, mam pytnie:
napisałem prosty program w pythonie w IDE Pycharm i tam dziala prawodiłowo, gdy odpalam go z poziomu CMD dostaje info ze nie znaleziono modułu, który jest i w Pycharmie go widzi normlanie. Co moze byc przyczyna ze w CMD nie jest widziany modul? pracuje na windowsie

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Ale co to za moduł? Jak wygląda import? Jak wygląda struktura pakietów/katalogów? Pycharm automatycznie dodaje do patha source rooty projektu.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
0

struktura wyglada tak:

Kopiuj
testy
   test1
      __init__.py
      testowanie1.py
   test2
      testowanie2.py

W pliku testowanie2 chce zaimportowac funkcje z pliku testowanie1.py
W Pycharm dziala to prawidlowo, a z consoli jak odpalam skrypt to dostaje blad :

Traceback (most recent call last):
File "testowanie2.py", line 1, in <module>
import test1.testowanie1 as t
ImportError: No module named test1.testowanie1

Da sie jakos dodac ten plik? probowalem robic sys.append i dodawac go, albo do zmiennej srodowiskowej path ale dalej nie widzi go z poziomu CMD

edytowany 1x, ostatnio: Shalom
0
Kopiuj

testy
   test1
      __init__.py
      testowanie1.py
   test2
      testowanie2.py

o powinno tak byc, ze glowny folder to testy, on zawiera w sobie foldery test1 i test2 i folder test1 zawiera init i testowanie1.py a folder 2 zawiera testowanie2.py

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:około godziny
  • Postów:6656
0

Użyj relatywnego importowania: https://docs.python.org/2.5/whatsnew/pep-328.html

Dobrze by było umieścić pusty plik __init__.py w każdym folderze projektu (oprócz głównego).

Relatywne importy z tego co pamiętam można sobie odpuścić, jeśli instancja interpretera była uruchomiona w głównym katalogu aplikacji. Ale jak Ty sobie odpalasz z konsoli prawdopodobnie będąc w katalogu "test2", to zwykłe import test1.testowanie1 nie wystarczy.


🕹️⌨️🖥️🖱️🎮
edytowany 8x, ostatnio: Spine
0

Niestety otrzymuje taki blad: ValueError: Attempted relative import in non-package
Tak, odpalam bedac w katalogu test2, wiesz moze jak to inaczej zrobic?

0

Sprobowalem jeszcze uruchomic bedac w folderze C:\Python27 i tam uzylem polecenia python i sciezka do skryptu ale dalej to samo :/ ( ze nie widzi importu)

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:3 minuty
  • Postów:4923
1
Kopiuj
import sys
sys.path.append("path to directory with my_module")
from my_module import my_function

Takie coś Ci nie działa?


0

Niestety nie dziala, nie widzi modulu, natomiast jak stworze plik w glownym folderze : testy i tam zaimportuje ktores z tych zagniezdzownych testowanie1 lub testowanie2 to dziala i widzi wszystko w pycharm

Guaz
To wklej w jaki sposób to podajesz :)
0
  • z pozioomu CMD i pycharm dziala wszystko wtedy
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:3 minuty
  • Postów:4923
1

Jeśli nie działa Ci sys.path.append(), to Masz coś skopane z systemem/Pythonem albo Robisz jakiś błąd(którego nie widzimy). Whatever, Spróbuj w takim razie znaleźć Environment variables, PYTHONPATH i tam wpisać ścieżki.


CorvusEtiam
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 4 lata
  • Postów:8
0

Najprościej to chyba tutaj jakiś virtualenv postawić. Coś w stylu python3 -mvenv VIRTUAL_ENV_NAME
Potem dajesz ./VIRTUAL_ENV_NAME\bin\activate.bat i kończysz pip install -e . by zainstalować swój pakiet w wirtualce. Jeśli to nie działa, możesz próbować ręcznie dodać w uruchamianym z konsoli pliku ścieżkę pakietu do PYTHONPATH. Może porównaj na start wynik sys.path() wykonanego z poziomu PyCharm i z poziomu konsoli.

0

Podepnę się, jak dodac do virtualenv biblioteki ktore nie da sie zainstalowac pipem, tz trzeba sciagnac ze strony i zainstalowac jak np py2exe . Bo jak chce pipem instalowac to pisze ze wymagana wersja 3.3 lub nowsza, a ja mam python 2.7 i sciagam ze strony wersje dla python2

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:3 minuty
  • Postów:4923
0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.