Blenderownia

Blender praktycznie => Python, skrypty, pluginy i Blender Game Engine => Wątek zaczęty przez: BanjoKazooie w 21.04.2022 09:49:16

Tytuł: Czy mogę zainstalować Pandy (lub inne moduły) w Pythonie Blendera?
Wiadomość wysłana przez: BanjoKazooie w 21.04.2022 09:49:16
Hej!

Rozumiem, że blender korzysta z wersji pythona oddzielnej od pythona systemowego. Piszę kilka skryptów, które zbierają dane o moich obiektach, badają je i tworzą fajne wykresy. Zwykle robię to w kontekście notatnika Jupyter z Numpy, Pandas i Matplotlibem. Blender ma już Numpy, więc muszę tylko wymyślić, jak dodać do niego pozostałe dwa.

Dzięki za pomoc!
Tytuł: Odp: Czy mogę zainstalować Pandy (lub inne moduły) w Pythonie Blendera?
Wiadomość wysłana przez: Elizabet2000 w 27.06.2022 07:49:39
Można - trzeba tylko użyć pip. Kod wygląda mniej więcej tak:

import sys
import subprocess
import os
try:
    from <package-name> import <function>
except:
    python_exe = os.path.join(sys.prefix, 'bin', 'python.exe')
    # upgrade pip
    subprocess.call([python_exe, "-m", "ensurepip"])
    subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"])
    # install required packages
    subprocess.call([python_exe, "-m", "pip", "install", "<package-name>"])

Try/except jest dlatego, że musisz zainstalować pakiet tylko raz, w przeciwnym razie Blender będzie się strasznie lagował za każdym razem, gdy go otworzysz. Jeśli pakiet jest już zainstalowany, try po prostu importuje z niego to, czego potrzebujesz. Jeśli nie jest, except wyłapuje go i instaluje. Proces ten jest nieco powolny za pierwszym razem (początkowa instalacja), ale na szczęście po zainstalowaniu nie ma już żadnych opóźnień.