Wesprzyj nas i przeglądaj Hejto bez reklam

Zostań Patronem
Ejj, ludzie z #programowanie pomóżcie.
Ciągnąc dalej temat interferencji fal znalazłem sposób na symulacje. Ale jest to w postaci gołych plików na #github
https://github.com/0x23/WaveSimulator2D?
Ale mimo podążania za instrukcją nie uruchamia mi się symulacja.
A z #python to ja jestem noga.
PyCharm zainstalowany, ale próba dalszego postępowania zgodnie z instrukcją wyrzuca błąd.
907ea70b-2726-4b55-83e8-3887b984d9a5
322731f8-fd21-40c4-af00-da4caa2624c3
myoniwy userbar
37

Komentarze (37)

Brakuje Tobie modułu w Pythonie. Musisz zainstalować poprzez np. pip3. Masz w repo plik requirements.txt?

@SquashFS jest, tylko ni cholery nie wiem co to ten pip a gugiel nie pomaga

@myoniwy daj mi chwilę bo z telefonu nie ogarnę tego opisać dla windowsa

@SquashFS Ale to nie jest zależność tylko "wave_sim2d" to moduł który właśnie próbuje odpalić.

@myoniwy @SquashFS A Pycharm nie używa swojego własnego interpretera do Pythona i musisz osobno instalować paczki per projekt czy cuś?

w pycharmie otwórz terminal, czyli

menu pycharma -> Viev -> Tool windows -> Terminal

powinien się otworzyć w głównym katalogu projektu z aktywnym wirtualnym środowiskiem, w tym katalogu w którym jest plik requrements.txt, wtedy wklepujesz w terminal

pip install -r requirements.txt

i powinien zainstalować requirementy


edit: jeśli pycharm automatycznie nie utworzył ci wirtualnego środowiska dla projektu utwórz je z poziomu menu:

menu pycharma -> File -> Settings... -> Project: WaveSimulator2D -> Project interpreter -> Add interpreter -> Generate new -> OK

270fbe98-d592-4bff-81e7-a0dfc3f8d392

@wonsz Fajnie, jest to krok do przodu, ale wciąż mam taki komunikat:

PS E:\Python\WaveSimulator2D-main\wave_sim2d> pip install -r requirements.txt

pip : The term 'pip' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a

 path was included, verify that the path is correct and try again.

At line:1 char:1

+ pip install -r requirements.txt

+ ~~~

   + CategoryInfo         : ObjectNotFound: (pip:String) [], CommandNotFoundException

   + FullyQualifiedErrorId : CommandNotFoundException

Czyli muszę tego PIPa zainstalować, ale CMD nie ułatwia mi tego,

Zwraca taką informację:

nie znaleziono Python; uruchom bez argumentˇw, aby zainstalowa

@myoniwy pip powinien się zainstalować z wirtualnym środowiskiem (potocznie venv) - edytowałem poprzedni wpis z instrukcją jak utworzyć venv dla projektu. no i możliwe że są jakieś różnice windows-linux których nie jestem niestety w stanie sprawdzić. jak utworzysz venv dla projektu będzie ono automatycznie aktywowane w pycharmie, ale może to wymagać restartu pycharma.

@wonsz Dobra, jest jakiś postęp.

8cda07c7-cb8f-42cb-85c6-1dbf28f6b026

Ehhh, teraz taki problem ma

Traceback (most recent call last):

 File "E:\Python\WaveSimulator2D-main\wave_sim2d\examples\example0.py", line 5, in <module>

   import cv2

ModuleNotFoundError: No module named 'cv2'

@myoniwy a zainstalowałeś requirementy z pliku requirements.txt ? Bo cv2 to jest modul opencv-python z tego pliku.


Ogólnie staram cię przeprowadzić przez proces z poziomu pycharma bo chyba będzie lepiej na dłuższą metę, więc podsumuję powyższe:


1. Po otwarciu projektu w pycharmie chcesz skonfigurować mu interpreter - opisałem to w edytowanym poście wyżej, tam gdzie jest wklejony screenshot.

2. Po skonfigurowaniu interpretera (utworzeniu nowego wirtualnego środowiska) uruchomienie terminala w pycharmie powinno skutkować oknem terminala w katalogu głównym projektu z aktywnym wirtualnym srodowiskiem, wtedy

3. Odpalasz w terminalu pierwszą komendę którą wklejalem, tę z pipem


Jak wszystko pójdzie dobrze powinieneś mieć projekt w pycharmie że skonfigurowanym interpreterem I zainstalowanymi zależnościami.

@wonsz Tak, aż spróbuję jeszcze raz

@myoniwy gdybyś natomiast chciał się bawić z terminala zamiast z pycharma:


cd E:\Python\WaveSimulator2D-main

utworzenie nowego środowiska w katalogu 'newvenv'


python -m venv newvenv

aktywacja srodowiska


newvenv\bin\activate.bat

instalacja zależności z pliku


pip install -r requirements.txt

uruchomienie przykładowego skryptu


python wave_sim2d\exampl

es\example0.py


Jeśli to by zadziałało to możesz tak utworzone środowisko podpiąć w pycharmie, tak jak opisałem przy okazji konfigurowania środowiska, tylko zamiast generować nowe wybierasz opcję Select existing I jako lokację podajesz:

E:\Python\WaveSimulator2D-main\newvenv


edit: teraz sobie przypomniałem że połowa z powyższych może nie zadziałać bo swego czasu instalator pythona pod windowsem nie dodawał domyślnie interpretera do zmiennej systemowej PATH przez co program nie był dostępny z dowolnego miejsca w systemie plików i trzeba było wołać pythona z pełną ścieżką - to są te różnice o których wspominałem bo pythona pod windowsem to ostatnio widziałem jeszcze przed covidem

@myoniwy i jeszcze trzecia opcja jak zainstalować zależności - w tym oknie gdzie konfigurowałeś interpreter, jak już stworzyłeś wirtualne środowisko, możesz dodawać pakiety ręcznie. W pliku requirements.txt masz linia po linii wyszczególnione z nazwy zależności które możesz dodawać plusikiem zaznaczonym na czerwono. Tam są cztery moduły z tego co patrzyłem, dużo klikania nie będzie.

195200b3-bad0-43ff-89ff-24fdac3eebb1

newvenv\bin\activate.bat

@wonsz @myoniwy używa powershella (i windowsa), więc pewnie:


newvenv\Scripts\activate.ps1


W zależności od używanego terminala musimy użyć odpowiedniej wersji skryptu.

@cec zgadza się, linuksowa struktura katalogów mi się napisała

Uwielbiam pythona, uwielbiam kiedy potrzebuje użyć jakiegoś programu i jego jedyna dostępna wersja to taka do ręcznego zainstalowania poprzez sklonowanie repo i doinstalownie zależności przez pip. Kocham kiedy muszę dla każdego programu robić osobne wirtualne środowisko i instalować te same paczki po 15 razy w różnych wersjach. Jeszcze bardziej kocham jak się potem okazuje, że to jest jakaś kosmicznie stara i specyficzna wersja pythona której nawet nie ma skompilowanej dla twojej dystrybucji wiec jeszcze musisz poczekać aż zbuduje ci się cały python lokanlnie u siebie. A na koniec po odpaleniu i tak zobaczysz błąd, że nie udało się zimportować *jakiegoś_gówna.py*.


Taki żart ofc, umiem to wszystko zrobić i dobrze rozumiem dlaczego tak jest ale dobrze wiemy, że każdy choć raz przez to przeszedł xD.

@Catharsis A ja tego nie ogarniam. Zwłaszcza że postępuje zgodnie z instrukcjami a tu to nie działa, tamtego nie ma, a to sterownik nie tak.

Nie mój świat, zwłaszcza jeśli nie działa.

@Catharsis czytam te twoje przygody z Pythonem, patrzę na nick, patrzę jeszcze raz i kurde wszystko pasuje xD


Uczucie litości i trwogi i na koniec oczyszczenie 😄

@myoniwy a zapytałem czada dżipiti promptem

jak zainstalować i uruchomić przykłady https://github.com/0x23/WaveSimulator2D na windows 10 w pycharmie używając pip

i zwrócił całkiem rozsądną instrukcję.


edit: w szczególności jest tam rozpisane co zrobić jeśli nie masz odpowiedniej karty graficznej, bo właśnie dorwałem się spowrotem do kompa, próbowałem odpalić cokolwiek z tego projektu i ewidentnie moja karta nie wspiera CUDA więc muszę obgonić to innym modułem niż tym z requirements.txt


edit2: poprosiłem go o instrukcje jeszcze raz bo zamknąłem zakładkę i dostałem całkiem inną instrukcję, ja pierdole o.O

@Catharsis - kontenery rozwiązują ten problem 🙂

@koszotorobur Ta, teraz to ja już to wszystko wiem. Szkoda, że parę lat temu nie wiedziałem, przez ten wpis przemawiało zwyczajnie doświadczenie xD.

ja pi⁎⁎⁎⁎le, sobie znalazłem zajęcie na drugi dzień świąt


@myoniwy dalej zainteresowany? bo nie wiem czy pisać instrukcję. no i czy masz kartę graficzną wspierającą CUDA?

4a5e5617-e693-4c42-b3a3-cb397ed90e3b

@wonsz tak, poproszę. Bo ja to mogę sobie Arduino albo jakiegoś HTMLa napisać a nie to.

A kartę zaraz zobaczę, mam dwa lapki więc któryś powinien działać.

@wonsz w jednym z lapków mam NVIDIA Quadro RTX 5000 z 16GB GDDR6

NVIDIA Quadro RTX 5000 

@myoniwy wygląda że powinno działać. no to teraz tak - odpaliłem wszystko na windowsie jeszcze zanim zainstalowałem tu pycharma więc instrukcja będzie podzielona na utworzenie środowiska i zainstalowanie zależności z linii komend i podpięcie tego później pod pycharma.


long story short - używam tu nieznanego mi wcześniej menedżera pakietów który, z tego co wyczytałem, miał rozwiązać problemy z instalacją CUPY za pomocą pipa, który się wypieprzał przy próbie budowania ze źródeł, a tu ciągnie już zbudowane binarki. no działa. daj mi kilkanaście minut na to wypracowanie, bo robiłem screenshoty i trochę generalnie pisania jest bo poleciałem najbezpieczniejszym scenariuszem (wypierdol wszystko i zrób od zera 😜 )

@wonsz

wypierdol wszystko i zrób od zera

Czasami jest to najlepsze rozwiązanie.

@myoniwy

słowem wstępu:


  • w windowsach po większych zmianach często warto strzelić restart systemu, będę o tym pisał, niektóre mogą się okazać nadmiarowe ale ja nie chciałem ryzykować

  • używasz domyślnego UI pycharma a ja starego, więc moje wcześniejsze podpowiedzi typu menu pycharm -> File -> ... mogą nie mieć odzwierciedlenia u ciebie - generalnie potrzebny ci będzie tylko dostęp do ustawień projektu do którego prowadzi skrót klawiaturowy Ctrl + Alt + S

  • przypomnę tylko że pycharma instalowałem już po utworzeniu środowiska, nie wiem jak pierwszy krok (odinstalowanie pythonów) wpłynie na twojego już zainstalowanego pycharma, nie powinien w ogóle ale cholera wie, a uruchomiony pycharm może bruździć przy próbie odinstalowania pythonów, warto go wyłączyć


tworzenie środowiska:


  1. Dodaj/Usuń programy -> odinstaluj wszystkie Pythony jakie masz (no chyba że wiesz że któregoś potrzebujesz do czegoś innego), restart

  2. Instalacja menedżera pakietów Miniconda -> https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe - zwróć uwagę żeby w trakcie procesu zaznaczyć opcję Register miniconda3 as my default python 3.12 (pierwszy screenshot)

  3. Uruchomienie konsoli Miniconda - gdzieś w menu start powinien dodać się skrót do Miniconda Prompt (drugi screenshot), uruchom

  4. Konsola uruchomi się w jakimś katalogu w systemie plików, nie jest to istotne, wywołania conda będą odnosić się do danych zapisanych w menedżerze pakietów, odpalamy po kolei następujące komendy, akceptując wyskakujące w trakcie pytania Proceed [y]/n enterem (trochę to wszystko potrwa):

  5. conda create -n wave2d

  6. conda activate wave2d

  7. conda install opencv

  8. conda install matplotlib

  9. conda install -c conda-forge cupy

  10. nie musimy instalować pakietu numpy bo już się zainstalował jako zależność opencv

  11. środowisko gotowe


podpinanie środowiska do pycharma:


  1. w pycharmie wchodzisz do ustawień projektu -> Python interpreter -> Add interpreter -> Add local interpreter (screenshot 3)

  2. następne punkty będą na screenshocie w kolejnym poście bo jest ograniczenie na 3

  3. w oknie dodawania interpretera wybierasz Select existing, Type: Conda, Path to conda ustawi się samo

  4. klikasz Reload environments i po przeładowaniu wybierasz z listy Environment środowisko wave2d

  5. klikasz Apply, czekasz aż pycharm przeładuje informacje o środowisku - wyświetli zainstalowane pakiety etc., wtedy klikasz OK

  6. powinno działać teraz, ewentualnie restart jak coś by mielił zbyt długo

df3882fc-aa58-4f35-9e88-542b26c8d20b
09457a7e-28c9-46a8-88fb-2e57de6a379c
4ef041b5-8554-42e8-b54e-0af7979264b6

@myoniwy trwało dłużej niż zakładałem, restartów było mniej niż w sumie pamiętam, generalnie powodzenia, jakby co to pisz, jeszcze trochę minie zanim pójdę spać

9f487b93-9cb6-4f1e-9a2d-90ed83177415

@myoniwy jeszcze jedno w kwestii GPU - latając po instrukcjach instalacji CUPY widziałem informacje o tym żeby sterownik też był odpowiedni. nie zagłębiałem się za bardzo co to znaczy bo najpierw chciałem sprawdzić czy użycie CONDY rozwiąże wszystkie problemy z instalowaniem zależności dla CUDA i to się udało -> zrobiłem to na laptoku do grania, więc nie było tu żadnych fikuśnych rzeczy instalowanych pod obliczenia GPU. jeżeli będzie problem z twoją kartą graficzną to już ci nie pomogę niestety.

@wonsz żarło, żarło i zdechło

Nie da się wybrać innego środowiska.

Robię reset.

7075947f-a053-43f9-8d74-b20583e0f4b4

Nie pomogło, wywala takie informacje.

eb329e31-ed18-417a-9898-e85897163c6a

@wonsz Dobra, udało mi się to uruchomić. Ale programowanie to nie mój świat.

29f4bdb2-c10f-4d4f-b9f5-91db5dc6aa2b

@myoniwy to nie programowanie a znany od dawna problem z zarządzaniem paczkami w pythonie - dlatego do tego siadłem, nauka przez rozpoznanie bojem.


I sorry że tak długo ale po napisaniu instrukcji siadłem do #balatro i nawet nie wiem kiedy ten czas poleciał

@wonsz Dzięki że ci się w ogóle chciało to tłumaczyć. Tak to bym olał temat.

A jeszcze pytanie, masz pomysł a raczej wiedzę jak uruchomić tą funkcję:

https://github.com/0x23/WaveSimulator2D?tab=readme-ov-file#image-scene-decsription-usage

Żeby generowało symulację na podstawie obrazu?

Przeglądam pliki i nie widzę żeby gdzieś można było podać odnośnik do pliku graficznego.


EDIT:

Dobra, example1.py to ogarnia.

@myoniwy nie ma problemu, tak jak mówiłem znalazłem sobie wymówkę na popaczanie na alternatywny menedżer pakietów a i lubię twoje wpisy w temacie co tam panie jebło w kabelkach to doszedłem do wniosku że może coś pomoże 😜 sam mówisz że programistą może i nie zostaniesz ale jeśli ten projekt wydaje się być przydatnym narzędziem to nie rezygnuj, jakby coś trzeba to pisz, postaramy się pomóc w wolnej chwili - w robocie liznąłęm temat opencv i numpy to jest szansa

Zaloguj się aby komentować