﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
2617	Bundle builder cannot install PyPi dependency pyrealsense2	Tom Goddard	Conrad Huang	"How do I add a PyPi dependency to a Toolshed bundle?  I have not been able to get it to work.

I have a bundle chimerax/src/bundles/realsense that controls a RealSense depth sensing camera that I would like to put on the Toolshed.  It has a PyPi dependency pyrealsense2 that I have not been able to get bundle builder to install.

I tried adding the dependency in the realsense/bundle_info.xml as follows

  <Dependencies>
    <Dependency name=""ChimeraX-Core"" version="">=0.9""/>
    <Dependency name=""pyrealsense2"" version="">=2.30.0.1184""/>
  </Dependencies>

Then make install fails saying 

pkg_resources.DistributionNotFound: The 'pyrealsense2' distribution was not found and is required by the application  

Here is the full traceback

$ make install
../../../ChimeraX.app/bin/ChimeraX.exe --nogui --safemode --exit --cmd ""devel install . user false exit true  ""
INFO:
Executing: devel install . user false exit true  
INFO:
Traceback (most recent call last):  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\runpy.py"", line
193, in _run_module_as_main  
    ""__main__"", mod_spec)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\runpy.py"", line
85, in _run_code  
    exec(code, run_globals)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\ChimeraX_main.py"", line 871, in <module>  
    exit_code = init(sys.argv)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\ChimeraX_main.py"", line 643, in init  
    run(sess, cmd)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\run.py"", line 31, in run  
    results = command.run(text, log=log)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py"", line 2837, in run  
    result = ci.function(session, **kw_args)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\devel.py"", line 116, in devel_install  
    session, test=test, debug=debug, user=user)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\devel.py"", line 146, in _run  
    bb = _get_builder(path, logger)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\devel.py"", line 190, in _get_builder  
    bb = BundleBuilder(logger, bundle_path=path)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 52, in __init__  
    self._make_setup_arguments()  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 530, in
_make_setup_arguments  
    for cm in self.c_modules]  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 530, in <listcomp>  
    for cm in self.c_modules]  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 843, in ext_mod  
    libraries, cpp_flags) = self._compile_options(logger, dependencies)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 749, in
_compile_options  
    d_inc, d_lib = self._get_bundle_dirs(logger, dep)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\bundle_builder\bundle_builder.py"", line 762, in
_get_bundle_dirs  
    if not get_distribution(req):  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\pkg_resources\\__init__.py"", line 481, in get_distribution  
    dist = get_provider(dist)  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\pkg_resources\\__init__.py"", line 357, in get_provider  
    return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\pkg_resources\\__init__.py"", line 900, in require  
    needed = self.resolve(parse_requirements(requirements))  
  File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\pkg_resources\\__init__.py"", line 786, in resolve  
    raise DistributionNotFound(req, requirers)  
pkg_resources.DistributionNotFound: The 'pyrealsense2==2.30.0.1184'
distribution was not found and is required by the application  
  

BUG:
pkg_resources.DistributionNotFound: The 'pyrealsense2==2.30.0.1184'
distribution was not found and is required by the application  
  
File ""C:\cygwin64\home\goddard\chimerax\ChimeraX.app\bin\lib\site-
packages\pkg_resources\\__init__.py"", line 786, in resolve  
raise DistributionNotFound(req, requirers)  
  
 _See log for complete Python traceback._  
  

0.00% done: Initializing core
50.00% done: Initializing bundles
make: *** [../Makefile.bundle:43: install] Error 1

"	defect	closed	moderate		Tool Shed		fixed						all	ChimeraX
