I wrote a script that install 3rd party Python modules uting pip. Here is the main function, where the full solution (python 3) for windows/mac/linux can be found here:
def install_blender_reqs(blender_fol='', gui=True):
if blender_fol == '':
blender_fol = find_blender()
blender_parent_fol = get_parent_fol(blender_fol)
# Get pip
bin_template = op.join(get_parent_fol(blender_fol), 'Resources', '2.7?', 'python') if is_osx() else \
op.join(blender_fol, '2.7?', 'python')
blender_bin_folders = sorted(glob.glob(bin_template))
if len(blender_bin_folders) == 0:
print("Couldn't find Blender's bin folder! ({})".format(bin_template))
blender_bin_fol = ''
choose_folder = gui_input('Please choose the Blender bin folder where python file exists', gui) == 'Ok'
if choose_folder:
fol = choose_folder_gui(blender_parent_fol, 'Blender bin folder') if gui else input()
if fol != '':
blender_bin_fol = glob.glob(op.join(fol, '2.7?', 'python'))[-1]
if blender_bin_fol == '':
return
else:
# todo: let the user select the folder if more than one
blender_bin_fol = blender_bin_folders[-1]
python_exe = 'python.exe' if is_windows() else 'python3.5m'
current_dir = os.getcwd()
os.chdir(blender_bin_fol)
pip_cmd = '{} {}'.format(op.join('bin', python_exe), op.join(GET_PIP_FOL, 'get-pip.py'))
if not is_windows():
run_script(pip_cmd)
install_cmd = '{} install {}'.format(op.join('bin', 'pip'), REQS)
run_script(install_cmd)
else:
install_cmd = '{} install {}'.format(op.join('Scripts', 'pip'), REQS)
print(
'Sorry, automatically installing external python libs in python will be implemented in the future.\n' +
'Meanwhile, you can do the following:\n' +
'1) Open a terminal window as administrator: ' +
'Right click on the "Command Prompt" shortcut from the star menu and choose "Run as administrator"\n' +
'2) Change the directory to "{}".\n'.format(blender_bin_fol) +
'3) Run "{}"\n'.format(pip_cmd) +
'4) Run "{}"\nGood luck!'.format(install_cmd))
os.chdir(current_dir)
On Windows, you need admin privileges, to the one needs to do it manually.