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:prawie 22 lata
  • Ostatnio:około godziny
  • Postów:6628
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:4886
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:4886
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:4886
0

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)