I am trying to use the pynwb library in my Blender addon and followed advice from several threads. Pip runs and returns "Requirement already satisfied" messages, but the pynwb module is not found. Any advice would be greatly appreciated.
Based on this thread: How to write my add-on so that when installed it also installs dependencies (let's say: scipy or numpy-quaternion)?
I tried this approach:
import bpy
import subprocess
#https://blender.stackexchange.com/questions/149944/how-to-write-my-add-on-so-that-when-installed-it-also-installs-dependencies-let/153520#153520
py_exec = bpy.app.binary_path_python
ensure pip is installed & update
subprocess.call([str(py_exec), "-m", "ensurepip", "--user"])
subprocess.call([str(py_exec), "-m", "pip", "install", "--upgrade", "pip"])
install dependencies using pip
dependencies such as 'numpy' could be added to the end of this command's list
subprocess.call([str(py_exec),"-m", "pip", "install", "--user", "pynwb"])
import pynwb
Based on this thread: Install pip and packages from within Blender OS independently
I tried this approach:
import bpy
import subprocess
import ensurepip
ensurepip.bootstrap()
pybin = bpy.app.binary_path_python
subprocess.check_call([pybin, '-m', 'pip', 'install', 'pynwb'])
import pywnb
Both approaches return the following error:
Looking in links: C:\Users\meowm\AppData\Local\Temp\tmpffsgzmav
Requirement already satisfied: setuptools in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (40.8.0)
Requirement already satisfied: pip in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (20.2.1)
Requirement already satisfied: pynwb in c:\users\meowm\appdata\roaming\python\python37\site-packages (1.3.3)
Requirement already satisfied: numpy>=1.16 in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (from pynwb) (1.17.0)
Requirement already satisfied: pandas>=0.23 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from pynwb) (1.1.0)
Requirement already satisfied: h5py>=2.9 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from pynwb) (2.10.0)
Requirement already satisfied: hdmf<2,>=1.6.4 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from pynwb) (1.6.4)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from pynwb) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from pandas>=0.23->pynwb) (2020.1)
Requirement already satisfied: six in c:\users\meowm\appdata\roaming\python\python37\site-packages (from h5py>=2.9->pynwb) (1.15.0)
Requirement already satisfied: ruamel.yaml>=0.15 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from hdmf<2,>=1.6.4->pynwb) (0.16.10)
Requirement already satisfied: jsonschema>=2.6.0 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from hdmf<2,>=1.6.4->pynwb) (3.2.0)
Requirement already satisfied: scipy>=1.1 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from hdmf<2,>=1.6.4->pynwb) (1.5.2)
Requirement already satisfied: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.9" in c:\users\meowm\appdata\roaming\python\python37\site-packages (from ruamel.yaml>=0.15->hdmf<2,>=1.6.4->pynwb) (0.2.0)
Requirement already satisfied: importlib-metadata; python_version < "3.8" in c:\users\meowm\appdata\roaming\python\python37\site-packages (from jsonschema>=2.6.0->hdmf<2,>=1.6.4->pynwb) (1.7.0)
Requirement already satisfied: pyrsistent>=0.14.0 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from jsonschema>=2.6.0->hdmf<2,>=1.6.4->pynwb) (0.16.0)
Requirement already satisfied: setuptools in c:\program files\blender foundation\blender 2.83\2.83\python\lib\site-packages (from jsonschema>=2.6.0->hdmf<2,>=1.6.4->pynwb) (40.8.0)
Requirement already satisfied: attrs>=17.4.0 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from jsonschema>=2.6.0->hdmf<2,>=1.6.4->pynwb) (19.3.0)
Requirement already satisfied: zipp>=0.5 in c:\users\meowm\appdata\roaming\python\python37\site-packages (from importlib-metadata; python_version < "3.8"->jsonschema>=2.6.0->hdmf<2,>=1.6.4->pynwb) (3.1.0)
Traceback (most recent call last):
File "\Text", line 11, in <module>
ModuleNotFoundError: No module named 'pywnb'
pynwbis installed, but you're trying to importpywnb(at least in the second example). – Robert Gützkow Aug 05 '20 at 19:42pywnbbefore attempting to install it without the--userflag as shown in the linked answer? When Blender is installed inC:\Program Filesyou need elevated permissions for this step. – Robert Gützkow Aug 11 '20 at 20:10