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

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.

0

struktura wyglada tak:

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

0

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

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.

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)

1
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

0
  • z pozioomu CMD i pycharm dziala wszystko wtedy
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.

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1