
Wpis użytkownika myoniwy w Programowanie
myoniwyFanatyk
11piorunówEjj, 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.
Komentarze (37)
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?
@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 :stuck_out_tongue_winking_eye: 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
@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.
@wonsz Dobra, udało mi się to uruchomić. Ale programowanie to nie mój świat.
Nie pomogło, wywala takie informacje.
@wonsz żarło, żarło i zdechło
Nie da się wybrać innego środowiska.
Robię reset.
@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.
Installation — CuPy 13.4.1 documentationCupy@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ć
@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
@wonsz
>wypierdol wszystko i zrób od zera
Czasami jest to najlepsze rozwiązanie.
>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 :stuck_out_tongue_winking_eye: )
@wonsz w jednym z lapków mam NVIDIA Quadro RTX 5000 z 16GB GDDR6
@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ć.
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.
@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.
@Catharsis - kontenery rozwiązują ten problem :slightly_smiling_face:
@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 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 🙂
@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.
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'
@cec zgadza się, linuksowa struktura katalogów mi się napisała
@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.
@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
@wonsz Tak, aż spróbuję jeszcze raz
@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.
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
@wonsz Dobra, jest jakiś postęp.
@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 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
Brakuje Tobie modułu w Pythonie. Musisz zainstalować poprzez np. pip3. Masz w repo plik requirements.txt?
@SquashFS Ale to nie jest zależność tylko "wave_sim2d" to moduł który właśnie próbuje odpalić.
@myoniwy pip to taki manager pakietów dla Pythona https://pypi.org/project/pip/
pipThe PyPA recommended tool for installing Python packages.PyPI@myoniwy daj mi chwilę bo z telefonu nie ogarnę tego opisać dla windowsa
@SquashFS jest, tylko ni cholery nie wiem co to ten pip a gugiel nie pomaga
