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'
pynwb
is installed, but you're trying to importpywnb
(at least in the second example). $\endgroup$