Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r2b3 Failure to import _rclpy on windows #115

Closed
sloretz opened this issue Sep 12, 2017 · 14 comments · Fixed by #116
Closed

r2b3 Failure to import _rclpy on windows #115

sloretz opened this issue Sep 12, 2017 · 14 comments · Fixed by #116
Assignees

Comments

@sloretz
Copy link
Contributor

sloretz commented Sep 12, 2017

Bug report

Required Info:

Steps to reproduce issue

Symptom is a lot of errors when using ros2 command. This is after call C:\dev\ros2\local_setup.bat

C:\Users\osrf>ros2 --help
Failed to load entry point 'start': DLL load failed: The specified module could not be found.
Failed to load entry point 'status': DLL load failed: The specified module could not be found.
Failed to load entry point 'stop': DLL load failed: The specified module could not be found.
Failed to load entry point 'list': DLL load failed: The specified module could not be found.
Failed to load entry point 'call': DLL load failed: The specified module could not be found.
Failed to load entry point 'list': DLL load failed: The specified module could not be found.
Failed to load entry point 'echo': DLL load failed: The specified module could not be found.
Failed to load entry point 'list': DLL load failed: The specified module could not be found.
Failed to load entry point 'pub': DLL load failed: The specified module could not be found.
usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...

ros2 is an extensible command-line tool for ROS 2.

optional arguments:
  -h, --help            show this help message and exit

Commands:
  daemon    Various daemon related sub-commands
  msg       Various msg related sub-commands
  node      Various node related sub-commands
  pkg       Various package related sub-commands
  run       Run a package specific executable
  security  Various security related sub-commands
  service   Various service related sub-commands
  srv       Various srv related sub-commands
  topic     Various topic related sub-commands

  Call `ros2 <command> -h` for more detailed usage.

Trying to load one of the entry points shows a traceback when importing _rclpy

>>> from ros2cli.verb.daemon import start
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\dev\ros2\Lib\site-packages\ros2cli\verb\daemon\start.py", line 15, in <module>
    from ros2cli.node.daemon import is_daemon_running
  File "C:\dev\ros2\Lib\site-packages\ros2cli\node\daemon.py", line 22, in <module>
    import rclpy
  File "C:\dev\ros2\Lib\site-packages\rclpy\__init__.py", line 17, in <module>
    from rclpy.executors import SingleThreadedExecutor as _SingleThreadedExecutor
  File "C:\dev\ros2\Lib\site-packages\rclpy\executors.py", line 21, in <module>
    from rclpy.impl.implementation_singleton import rclpy_implementation as _rclpy
  File "C:\dev\ros2\Lib\site-packages\rclpy\impl\implementation_singleton.py", line 32, in <module>
    rclpy_implementation = importlib.import_module('._rclpy', package='rclpy')
  File "C:\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.

Trying to import rclpy shows a similar error

>>> import rclpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\dev\ros2\Lib\site-packages\rclpy\__init__.py", line 17, in <module>
    from rclpy.executors import SingleThreadedExecutor as _SingleThreadedExecutor
  File "C:\dev\ros2\Lib\site-packages\rclpy\executors.py", line 21, in <module>
    from rclpy.impl.implementation_singleton import rclpy_implementation as _rclpy
  File "C:\dev\ros2\Lib\site-packages\rclpy\impl\implementation_singleton.py", line 32, in <module>
    rclpy_implementation = importlib.import_module('._rclpy', package='rclpy')
  File "C:\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified module could not be found.

Expected behavior

I'd expect no ImportError to be raised.

Actual behavior

Import error is raised

Additional information

sys.path

>>> import sys
>>> sys.path
['', 'C:\\dev\\ros2\\Lib\\site-packages', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Python36\\lib\\site-packages']

Not sure if I should see _rclpy.dll or something like that, but I don't. There is _rclpy.pyd, is that what is failing to be found?

C:\Users\osrf>dir C:\dev\ros2\Lib\site-packages\rclpy
 Volume in drive C has no label.
 Volume Serial Number is AA39-7FB6

 Directory of C:\dev\ros2\Lib\site-packages\rclpy

09/12/2017  09:38 AM    <DIR>          .
09/12/2017  09:38 AM    <DIR>          ..
09/12/2017  09:38 AM             3,527 callback_groups.py
09/12/2017  09:38 AM             3,126 client.py
09/12/2017  09:38 AM               646 constants.py
09/12/2017  09:38 AM             2,558 exceptions.py
09/12/2017  09:38 AM            16,545 executors.py
09/12/2017  09:38 AM             1,505 expand_topic_name.py
09/12/2017  09:38 AM    <DIR>          impl
09/12/2017  09:38 AM             2,535 logging.py
09/12/2017  09:38 AM            12,211 node.py
09/12/2017  09:38 AM             1,087 publisher.py
09/12/2017  09:38 AM             5,581 qos.py
09/12/2017  09:38 AM             1,449 service.py
09/12/2017  09:38 AM             1,270 subscription.py
09/12/2017  09:38 AM             2,157 timer.py
09/12/2017  09:38 AM             1,210 topic_or_service_is_hidden.py
09/12/2017  09:38 AM             1,203 utilities.py
09/12/2017  09:38 AM             1,709 validate_full_topic_name.py
09/12/2017  09:38 AM             1,568 validate_namespace.py
09/12/2017  09:38 AM             1,378 validate_node_name.py
09/12/2017  09:38 AM             1,710 validate_topic_name.py
09/12/2017  09:38 AM             1,716 _rclpy.lib
09/12/2017  09:38 AM            44,032 _rclpy.pyd
09/12/2017  09:38 AM             1,932 _rclpy_logging.lib
09/12/2017  09:38 AM            11,264 _rclpy_logging.pyd
09/12/2017  09:38 AM             1,654 __init__.py
09/12/2017  09:46 AM    <DIR>          __pycache__
              24 File(s)        123,573 bytes
               4 Dir(s)   6,535,761,920 bytes free
@dirk-thomas
Copy link
Member

@sloretz
Copy link
Contributor Author

sloretz commented Sep 12, 2017

Possibly due to missing VS2015 redistributable libraries? Dependency Walker reports these as missing

API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
API-MS-WIN-CORE-APPCOMPAT-L1-1-1.DLL
API-MS-WIN-CORE-APPINIT-L1-1-0.DLL
API-MS-WIN-CORE-ATOMS-L1-1-0.DLL
API-MS-WIN-CORE-COMM-L1-1-0.DLL
API-MS-WIN-CORE-CONSOLE-L1-1-0.DLL
API-MS-WIN-CORE-CONSOLE-L2-1-0.DLL
API-MS-WIN-CORE-CRT-L1-1-0.DLL
API-MS-WIN-CORE-CRT-L2-1-0.DLL
API-MS-WIN-CORE-DATETIME-L1-1-1.DLL
API-MS-WIN-CORE-DATETIME-L1-1-2.DLL
API-MS-WIN-CORE-DEBUG-L1-1-1.DLL
API-MS-WIN-CORE-DELAYLOAD-L1-1-1.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-1.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-3.DLL
API-MS-WIN-CORE-FIBERS-L1-1-1.DLL
API-MS-WIN-CORE-FIBERS-L2-1-1.DLL
API-MS-WIN-CORE-FILE-L1-2-1.DLL
API-MS-WIN-CORE-FILE-L1-2-2.DLL
API-MS-WIN-CORE-FILE-L2-1-1.DLL
API-MS-WIN-CORE-FILE-L2-1-2.DLL
API-MS-WIN-CORE-HANDLE-L1-1-0.DLL
API-MS-WIN-CORE-HEAP-L1-2-0.DLL
API-MS-WIN-CORE-HEAP-L2-1-0.DLL
API-MS-WIN-CORE-HEAP-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-INTERLOCKED-L1-2-0.DLL
API-MS-WIN-CORE-IO-L1-1-1.DLL
API-MS-WIN-CORE-JOB-L1-1-0.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-1.DLL
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-LARGEINTEGER-L1-1-0.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-2-1.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L2-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-1.DLL
API-MS-WIN-CORE-LOCALIZATION-L2-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-OBSOLETE-L1-3-0.DLL
API-MS-WIN-CORE-LOCALIZATION-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-MEMORY-L1-1-2.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-2-0.DLL
API-MS-WIN-CORE-NAMEDPIPE-L1-2-1.DLL
API-MS-WIN-CORE-NAMESPACE-L1-1-0.DLL
API-MS-WIN-CORE-NORMALIZATION-L1-1-0.DLL
API-MS-WIN-CORE-PATH-L1-1-0.DLL
API-MS-WIN-CORE-PERFCOUNTERS-L1-1-0.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-2-0.DLL
API-MS-WIN-CORE-PROCESSSNAPSHOT-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-2.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-3.DLL
API-MS-WIN-CORE-PROCESSTOPOLOGY-L1-2-0.DLL
API-MS-WIN-CORE-PROFILE-L1-1-0.DLL
API-MS-WIN-CORE-PSAPI-ANSI-L1-1-0.DLL
API-MS-WIN-CORE-PSAPI-L1-1-0.DLL
API-MS-WIN-CORE-QUIRKS-L1-1-0.DLL
API-MS-WIN-CORE-REALTIME-L1-1-0.DLL
API-MS-WIN-CORE-REGISTRY-L1-1-0.DLL
API-MS-WIN-CORE-REGISTRY-L1-1-1.DLL
API-MS-WIN-CORE-REGISTRYUSERSPECIFIC-L1-1-0.DLL
API-MS-WIN-CORE-RTLSUPPORT-L1-2-0.DLL
API-MS-WIN-CORE-SHLWAPI-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-SHLWAPI-OBSOLETE-L1-2-0.DLL
API-MS-WIN-CORE-SIDEBYSIDE-L1-1-0.DLL
API-MS-WIN-CORE-STRING-L1-1-0.DLL
API-MS-WIN-CORE-STRING-L2-1-0.DLL
API-MS-WIN-CORE-STRING-L2-1-1.DLL
API-MS-WIN-CORE-STRING-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-STRINGANSI-L1-1-0.DLL
API-MS-WIN-CORE-SYNCH-L1-1-0.DLL
API-MS-WIN-CORE-SYNCH-L1-2-0.DLL
API-MS-WIN-CORE-SYNCH-L1-2-1.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-1.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-3.DLL
API-MS-WIN-CORE-SYSTEMTOPOLOGY-L1-1-0.DLL
API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL
API-MS-WIN-CORE-THREADPOOL-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-THREADPOOL-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-TIMEZONE-L1-1-0.DLL
API-MS-WIN-CORE-URL-L1-1-0.DLL
API-MS-WIN-CORE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-VERSION-L1-1-0.DLL
API-MS-WIN-CORE-VERSION-L1-1-1.DLL
API-MS-WIN-CORE-VERSION-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-VERSIONANSI-L1-1-0.DLL
API-MS-WIN-CORE-VERSIONANSI-L1-1-1.DLL
API-MS-WIN-CORE-WINDOWSERRORREPORTING-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-1.DLL
API-MS-WIN-CORE-WOW64-L1-1-0.DLL
API-MS-WIN-CORE-WOW64-L1-1-1.DLL
API-MS-WIN-CORE-XSTATE-L2-1-0.DLL
API-MS-WIN-CRT-CONIO-L1-1-0.DLL
API-MS-WIN-CRT-CONVERT-L1-1-0.DLL
API-MS-WIN-CRT-ENVIRONMENT-L1-1-0.DLL
API-MS-WIN-CRT-FILESYSTEM-L1-1-0.DLL
API-MS-WIN-CRT-HEAP-L1-1-0.DLL
API-MS-WIN-CRT-LOCALE-L1-1-0.DLL
API-MS-WIN-CRT-MATH-L1-1-0.DLL
API-MS-WIN-CRT-MULTIBYTE-L1-1-0.DLL
API-MS-WIN-CRT-PROCESS-L1-1-0.DLL
API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL
API-MS-WIN-CRT-STDIO-L1-1-0.DLL
API-MS-WIN-CRT-STRING-L1-1-0.DLL
API-MS-WIN-CRT-TIME-L1-1-0.DLL
API-MS-WIN-CRT-UTILITY-L1-1-0.DLL
API-MS-WIN-EVENTING-CLASSICPROVIDER-L1-1-0.DLL
API-MS-WIN-EVENTING-CONSUMER-L1-1-0.DLL
API-MS-WIN-EVENTING-CONTROLLER-L1-1-0.DLL
API-MS-WIN-EVENTING-OBSOLETE-L1-1-0.DLL
API-MS-WIN-EVENTING-PROVIDER-L1-1-0.DLL
API-MS-WIN-SECURITY-APPCONTAINER-L1-1-0.DLL
API-MS-WIN-SECURITY-AUDIT-L1-1-1.DLL
API-MS-WIN-SECURITY-BASE-L1-2-0.DLL
API-MS-WIN-SECURITY-BASE-PRIVATE-L1-1-1.DLL
API-MS-WIN-SERVICE-CORE-L1-1-1.DLL
API-MS-WIN-SERVICE-CORE-L1-1-2.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L1-1-0.DLL
API-MS-WIN-SERVICE-MANAGEMENT-L2-1-0.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-0
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
API-MS-WIN-SERVICE-WINSVC-L1-2-0.DLL
LIBEAY32.DLL
API-MS-WIN-APPMODEL-IDENTITY-L1-2-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-INTERNAL-L1-1-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-L1-1-1.DLL
API-MS-WIN-APPMODEL-STATE-L1-2-0.DLL
API-MS-WIN-APPMODEL-UNLOCK-L1-1-0.DLL
API-MS-WIN-BASE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-CALENDAR-L1-1-0.DLL
API-MS-WIN-CORE-COM-L1-1-0
API-MS-WIN-CORE-COM-L1-1-1.DLL
API-MS-WIN-CORE-COM-L2-1-1.DLL
API-MS-WIN-CORE-COM-MIDLPROXYSTUB-L1-1-0.DLL
API-MS-WIN-CORE-COM-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-COM-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-DEBUG-L1-1-0.DLL
API-MS-WIN-CORE-DELAYLOAD-L1-1-0.DLL
API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL
API-MS-WIN-CORE-FIBERS-L1-1-0.DLL
API-MS-WIN-CORE-FILE-L1-1-0.DLL
API-MS-WIN-CORE-FILE-L1-2-0.DLL
API-MS-WIN-CORE-FILE-L2-1-0.DLL
API-MS-WIN-CORE-HEAP-L1-1-0.DLL
API-MS-WIN-CORE-INTERLOCKED-L1-1-0.DLL
API-MS-WIN-CORE-IO-L1-1-0.DLL
API-MS-WIN-CORE-JOB-L2-1-0.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-0.DLL
API-MS-WIN-CORE-KERNEL32-LEGACY-L1-1-3.DLL
API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-2.DLL
API-MS-WIN-CORE-LIBRARYLOADER-L1-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-1-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-0.DLL
API-MS-WIN-CORE-LOCALIZATION-L1-2-2.DLL
API-MS-WIN-CORE-LOCALIZATION-OBSOLETE-L1-2-0.DLL
API-MS-WIN-CORE-LOCALREGISTRY-L1-1-0.DLL
API-MS-WIN-CORE-MARSHAL-L1-1-0.DLL
API-MS-WIN-CORE-MEMORY-L1-1-0.DLL
API-MS-WIN-CORE-MISC-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSENVIRONMENT-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-0.DLL
API-MS-WIN-CORE-PROCESSTHREADS-L1-1-1.DLL
API-MS-WIN-CORE-PROCESSTOPOLOGY-OBSOLETE-L1-1-0.DLL
API-MS-WIN-CORE-PSM-APPNOTIFY-L1-1-0.DLL
API-MS-WIN-CORE-PSM-KEY-L1-1-0.DLL
API-MS-WIN-CORE-REALTIME-L1-1-1.DLL
API-MS-WIN-CORE-REGISTRY-L2-2-0.DLL
API-MS-WIN-CORE-REGISTRY-PRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-RTLSUPPORT-L1-1-0.DLL
API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL
API-MS-WIN-CORE-SYSINFO-L1-2-0.DLL
API-MS-WIN-CORE-TOOLHELP-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERRORPRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-PROPERTYSETPRIVATE-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-PROPERTYSETPRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-WINRT-REGISTRATION-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-COREUI-SECRUNTIME-L1-1-0.DLL
API-MS-WIN-CRT-PRIVATE-L1-1-0.DLL
API-MS-WIN-DEVICES-CONFIG-L1-1-1.DLL
API-MS-WIN-DEVICES-QUERY-L1-1-1.DLL
API-MS-WIN-DOWNLEVEL-ADVAPI32-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-ADVAPI32-L2-1-0.DLL
API-MS-WIN-DOWNLEVEL-NORMALIZ-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-OLE32-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-SHELL32-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-SHLWAPI-L2-1-0.DLL
API-MS-WIN-DOWNLEVEL-SHLWAPI-L2-1-1.DLL
API-MS-WIN-DOWNLEVEL-USER32-L1-1-0.DLL
API-MS-WIN-DOWNLEVEL-VERSION-L1-1-0.DLL
API-MS-WIN-DX-D3DKMT-L1-1-0.DLL
API-MS-WIN-EVENTING-LEGACY-L1-1-0.DLL
API-MS-WIN-EVENTLOG-LEGACY-L1-1-0.DLL
API-MS-WIN-GDI-DPIINFO-L1-1-0.DLL
API-MS-WIN-MM-JOYSTICK-L1-1-0.DLL
API-MS-WIN-MM-MISC-L1-1-1.DLL
API-MS-WIN-MM-MISC-L2-1-0.DLL
API-MS-WIN-MM-MME-L1-1-0.DLL
API-MS-WIN-MM-TIME-L1-1-0.DLL
API-MS-WIN-NTUSER-IE-MESSAGE-L1-1-0.DLL
API-MS-WIN-NTUSER-SYSPARAMS-L1-1-0.DLL
API-MS-WIN-OLE32-IE-L1-1-0.DLL
API-MS-WIN-POWER-BASE-L1-1-0.DLL
API-MS-WIN-POWER-SETTING-L1-1-0.DLL
API-MS-WIN-RTCORE-NTUSER-CLIPBOARD-L1-1-0.DLL
API-MS-WIN-RTCORE-NTUSER-PRIVATE-L1-1-0.DLL
API-MS-WIN-RTCORE-NTUSER-PRIVATE-L1-1-1.DLL
API-MS-WIN-RTCORE-NTUSER-SYNCH-L1-1-0.DLL
API-MS-WIN-RTCORE-NTUSER-WINDOW-L1-1-0.DLL
API-MS-WIN-RTCORE-NTUSER-WINEVENT-L1-1-0.DLL
API-MS-WIN-SECURITY-ACCESSHLPR-L1-1-0.DLL
API-MS-WIN-SECURITY-ACTIVEDIRECTORYCLIENT-L1-1-0.DLL
API-MS-WIN-SECURITY-ACTIVEDIRECTORYCLIENT-L1-1-1.DLL
API-MS-WIN-SECURITY-BASE-L1-1-0.DLL
API-MS-WIN-SECURITY-CAPABILITY-L1-1-0.DLL
API-MS-WIN-SECURITY-CREDENTIALS-L1-1-0.DLL
API-MS-WIN-SECURITY-CREDENTIALS-L2-1-0.DLL
API-MS-WIN-SECURITY-CRYPTOAPI-L1-1-0.DLL
API-MS-WIN-SECURITY-GROUPPOLICY-L1-1-0.DLL
API-MS-WIN-SECURITY-LSALOOKUP-L1-1-1.DLL
API-MS-WIN-SECURITY-LSALOOKUP-L1-1-2.DLL
API-MS-WIN-SECURITY-LSALOOKUP-L2-1-1.DLL
API-MS-WIN-SECURITY-LSAPOLICY-L1-1-0.DLL
API-MS-WIN-SECURITY-PROVIDER-L1-1-0.DLL
API-MS-WIN-SECURITY-SDDL-L1-1-0.DLL
API-MS-WIN-SECURITY-SDDLPARSECOND-L1-1-0.DLL
API-MS-WIN-SERVICE-WINSVC-L1-1-0.DLL
API-MS-WIN-SHCORE-COMHELPERS-L1-1-0.DLL
API-MS-WIN-SHCORE-OBSOLETE-L1-1-0.DLL
API-MS-WIN-SHCORE-REGISTRY-L1-1-1.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
API-MS-WIN-SHCORE-STREAM-L1-1-0.DLL
API-MS-WIN-SHCORE-STREAM-WINRT-L1-1-0.DLL
API-MS-WIN-SHCORE-SYSINFO-L1-1-0.DLL
API-MS-WIN-SHCORE-THREAD-L1-1-0.DLL
API-MS-WIN-SHCORE-UNICODEANSI-L1-1-0.DLL
API-MS-WIN-SHELL-SHELLCOM-L1-1-0.DLL
API-MS-WIN-SHELL-SHELLFOLDERS-L1-1-0.DLL
API-MS-WIN-SHLWAPI-IE-L1-1-0.DLL
API-MS-WIN-SHLWAPI-WINRT-STORAGE-L1-1-1.DLL
API-MS-WIN-STORAGE-EXPORTS-EXTERNAL-L1-1-0.DLL
API-MS-WIN-STORAGE-EXPORTS-INTERNAL-L1-1-0.DLL
EMCLIENT.DLL
EXT-MS-MF-PAL-L2-1-0.DLL
EXT-MS-ONECORE-APPCHROMEAPI-L1-1-0.DLL
EXT-MS-ONECORE-APPMODEL-VEVENTDISPATCHER-L1-1-0.DLL
EXT-MS-ONECORE-DCOMP-L1-1-0.DLL
EXT-MS-ONECORE-ORIENTATION-L1-1-0.DLL
EXT-MS-ONECORE-PHONEINFO-L1-1-0.DLL
EXT-MS-ONECORE-SHELLCHROMEAPI-L1-1-1.DLL
EXT-MS-WIN-ADVAPI32-EVENTINGCONTROLLER-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-MSI-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-NPUSERNAME-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-NTMARTA-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-PSM-APP-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-REGISTRY-L1-1-0.DLL
EXT-MS-WIN-ADVAPI32-SAFER-L1-1-0.DLL
EXT-MS-WIN-APPCOMPAT-APPHELP-L1-1-0.DLL
EXT-MS-WIN-APPMODEL-APPCONTAINERPATH-L1-1-0.DLL
EXT-MS-WIN-APPMODEL-DEPLOYMENT-L1-1-1.DLL
EXT-MS-WIN-APPMODEL-STATE-EXT-L1-2-0.DLL
EXT-MS-WIN-APPMODEL-USERCONTEXT-L1-1-0.DLL
EXT-MS-WIN-APPXDEPLOYMENTCLIENT-APPXDEPLOY-L1-1-0.DLL
EXT-MS-WIN-APPXDEPLOYMENTCLIENT-APPXDEPLOYONECORE-L1-1-0.DLL
EXT-MS-WIN-AUDIOCORE-PAL-L1-1-0.DLL
EXT-MS-WIN-AUTHZ-CONTEXT-L1-1-0.DLL
EXT-MS-WIN-AUTHZ-REMOTE-L1-1-0.DLL
EXT-MS-WIN-COM-CLBCATQ-L1-1-0.DLL
EXT-MS-WIN-COM-COML2-L1-1-1.DLL
EXT-MS-WIN-COM-OLE32-L1-1-1.DLL
EXT-MS-WIN-COM-OLE32-L1-1-3.DLL
EXT-MS-WIN-COM-PSMREGISTER-L1-1-0.DLL
EXT-MS-WIN-COM-SUSPENDRESILIENCY-L1-1-0.DLL
EXT-MS-WIN-CORE-WINRT-REMOTE-L1-1-0.DLL
EXT-MS-WIN-DEVMGMT-POLICY-L1-1-0.DLL
EXT-MS-WIN-DOMAINJOIN-NETJOIN-L1-1-0.DLL
EXT-MS-WIN-DWMAPIDXGI-EXT-L1-1-0.DLL
EXT-MS-WIN-EDPUTIL-POLICY-L1-1-0.DLL
EXT-MS-WIN-FAMILYSAFETY-CHILDACCOUNT-L1-1-0.DLL
EXT-MS-WIN-FECLIENT-ENCRYPTEDFILE-L1-1-0.DLL
EXT-MS-WIN-FIREWALLAPI-WEBPROXY-L1-1-0.DLL
EXT-MS-WIN-GDI-DC-CREATE-L1-1-1.DLL
EXT-MS-WIN-GDI-DC-L1-2-0.DLL
EXT-MS-WIN-GDI-DEVCAPS-L1-1-0.DLL
EXT-MS-WIN-GDI-DRAW-L1-1-1.DLL
EXT-MS-WIN-GDI-DRAW-L1-1-2.DLL
EXT-MS-WIN-GDI-FONT-L1-1-1.DLL
EXT-MS-WIN-GDI-FONT-L1-1-2.DLL
EXT-MS-WIN-GDI-METAFILE-L1-1-1.DLL
EXT-MS-WIN-GDI-PATH-L1-1-0.DLL
EXT-MS-WIN-GDI-RENDER-L1-1-0.DLL
EXT-MS-WIN-GPAPI-GROUPPOLICY-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-APPCOMPAT-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-DATETIME-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-ERRORHANDLING-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-FILE-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-LOCALIZATION-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-PACKAGE-CURRENT-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-PACKAGE-L1-1-1.DLL
EXT-MS-WIN-KERNEL32-QUIRKS-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-QUIRKS-L1-1-1.DLL
EXT-MS-WIN-KERNEL32-REGISTRY-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-SIDEBYSIDE-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-WINDOWSERRORREPORTING-L1-1-0.DLL
EXT-MS-WIN-KERNEL32-WINDOWSERRORREPORTING-L1-1-1.DLL
EXT-MS-WIN-KERNELBASE-PROCESSTHREAD-L1-1-0.DLL
EXT-MS-WIN-MININPUT-INPUTHOST-L1-1-0.DLL
EXT-MS-WIN-MPR-MULTIPLEPROVIDERROUTER-L1-1-0.DLL
EXT-MS-WIN-MRMCORER-ENVIRONMENT-L1-1-0.DLL
EXT-MS-WIN-MRMCORER-RESMANAGER-L1-1-0.DLL
EXT-MS-WIN-NTDSAPI-ACTIVEDIRECTORYCLIENT-L1-1-0.DLL
EXT-MS-WIN-NTDSAPI-ACTIVEDIRECTORYCLIENT-L1-1-1.DLL
EXT-MS-WIN-NTUSER-DC-ACCESS-EXT-L1-1-0.DLL
EXT-MS-WIN-NTUSER-DIALOGBOX-L1-1-1.DLL
EXT-MS-WIN-NTUSER-DIALOGBOX-L1-1-2.DLL
EXT-MS-WIN-NTUSER-DRAW-L1-1-1.DLL
EXT-MS-WIN-NTUSER-DRAW-L1-1-2.DLL
EXT-MS-WIN-NTUSER-GUI-L1-3-0.DLL
EXT-MS-WIN-NTUSER-KEYBOARD-L1-1-1.DLL
EXT-MS-WIN-NTUSER-KEYBOARD-L1-2-0.DLL
EXT-MS-WIN-NTUSER-MENU-L1-1-2.DLL
EXT-MS-WIN-NTUSER-MESSAGE-L1-1-1.DLL
EXT-MS-WIN-NTUSER-MESSAGE-L1-1-2.DLL
EXT-MS-WIN-NTUSER-MISC-L1-3-0.DLL
EXT-MS-WIN-NTUSER-MISC-L1-5-0.DLL
EXT-MS-WIN-NTUSER-MOUSE-L1-1-0.DLL
EXT-MS-WIN-NTUSER-PRIVATE-L1-2-0.DLL
EXT-MS-WIN-NTUSER-RECTANGLE-EXT-L1-1-0.DLL
EXT-MS-WIN-NTUSER-ROTATIONMANAGER-L1-1-0.DLL
EXT-MS-WIN-NTUSER-STRING-L1-1-0.DLL
EXT-MS-WIN-NTUSER-SYNCH-L1-1-0.DLL
EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
EXT-MS-WIN-NTUSER-WINDOW-L1-1-1.DLL
EXT-MS-WIN-NTUSER-WINDOW-L1-1-3.DLL
EXT-MS-WIN-NTUSER-WINDOWCLASS-L1-1-1.DLL
EXT-MS-WIN-NTUSER-WINDOWSTATION-L1-1-1.DLL
EXT-MS-WIN-OLE32-BINDCTX-L1-1-0.DLL
EXT-MS-WIN-OLE32-IE-EXT-L1-1-0.DLL
EXT-MS-WIN-OLE32-OLEAUTOMATION-L1-1-0.DLL
EXT-MS-WIN-PROFILE-EXTENDER-L1-1-0.DLL
EXT-MS-WIN-PROFILE-LOAD-L1-1-0.DLL
EXT-MS-WIN-PROFILE-USERENV-L1-1-0.DLL
EXT-MS-WIN-RPC-SSL-L1-1-0.DLL
EXT-MS-WIN-RTCORE-GDI-DEVCAPS-L1-1-0.DLL
EXT-MS-WIN-RTCORE-GDI-OBJECT-L1-1-0.DLL
EXT-MS-WIN-RTCORE-GDI-RGN-L1-1-0.DLL
EXT-MS-WIN-RTCORE-GDI-RGN-L1-1-1.DLL
EXT-MS-WIN-RTCORE-MINUSER-PRIVATE-EXT-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-DC-ACCESS-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-DPI-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-IAM-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-INTEGRATION-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYNCH-EXT-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSCOLORS-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSPARAMS-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-WINDOW-EXT-L1-1-0.DLL
EXT-MS-WIN-SECUR32-TRANSLATENAME-L1-1-0.DLL
EXT-MS-WIN-SECURITY-CAPAUTHZ-L1-1-0.DLL
EXT-MS-WIN-SECURITY-CHAMBERS-L1-1-0.DLL
EXT-MS-WIN-SECURITY-CREDUI-L1-1-0.DLL
EXT-MS-WIN-SECURITY-EFS-L1-1-0.DLL
EXT-MS-WIN-SESSION-USERMGR-L1-1-0.DLL
EXT-MS-WIN-SESSION-USERTOKEN-L1-1-0.DLL
EXT-MS-WIN-SESSION-WINSTA-L1-1-0.DLL
EXT-MS-WIN-SESSION-WTSAPI32-L1-1-0.DLL
EXT-MS-WIN-SETUPAPI-INF-L1-1-0.DLL
EXT-MS-WIN-SHELL-DIRECTORY-L1-1-0.DLL
EXT-MS-WIN-SHELL-PROPSYS-L1-1-0.DLL
EXT-MS-WIN-SHELL-SHELL32-L1-2-0.DLL
EXT-MS-WIN-SHELL-SHLWAPI-L1-1-0.DLL
EXT-MS-WIN-SHELL32-SHELLCOM-L1-1-0.DLL
EXT-MS-WIN-SXS-OLEAUTOMATION-L1-1-0.DLL
EXT-MS-WIN-UI-VIEWMANAGEMENT-L1-1-0.DLL
EXT-MS-WIN-USP10-L1-1-0.DLL
EXT-MS-WIN-WER-UI-L1-1-0.DLL
EXT-MS-WIN-WER-XBOX-L1-1-0.DLL
EXT-MS-WIN-WINRT-STORAGE-L1-1-0.DLL
EXT-MS-WIN-WLAN-ONEXUI-L1-1-0.DLL
IESHIMS.DLL

@mikaelarguedas
Copy link
Member

also similar to ros2/ros2#360 (comment)

@mikaelarguedas
Copy link
Member

Installing openssl fixed the problem, added to the installation instructions in https://github.com/ros2/ros2/wiki/Windows-Install-Binary/_compare/3bb08f69ccbba3841af5b481d5263815165ae314...1089afdf20f981940c50a222e96f4c6a591b6de2.

The issue is that since beta2 we ship fastrtps with security. So we need some openssl dlls to be able to run our programs. The error message given by python is not clear at all. I tracked it down when trying to run c++ code that gave a much clearer like: "libEAY32.dll is missing".

Installing openSSL fixed both c++ and Python examples

@dirk-thomas
Copy link
Member

dirk-thomas commented Sep 12, 2017

Can you look into the raised ImportError and what it's members contain (msg, name, path, args). Maybe there is some useful information in there?

@dhood
Copy link
Member

dhood commented Sep 12, 2017

this might explain users having issues with OSX binaries since we shipped with security, too

@sloretz
Copy link
Contributor Author

sloretz commented Sep 12, 2017

@dirk-thomas Here are the members, haven't tried installing openssl yet

>>> try:
...    import rclpy
... except Exception as e:
...    print(dir(e))
...    print ("args", e.args, "msg", e.msg, "name", e.name, "path", e.path)
...
['__cause__', '__class__', '__context__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__suppress_context__', '__traceback__', 'args', 'msg', 'name', 'path', 'with_traceback']
args ('DLL load failed: The specified module could not be found.',) msg DLL load failed: The specified module could not be found. name _rclpy path C:\dev\ros2\Lib\site-packages\rclpy\_rclpy.pyd

@mikaelarguedas
Copy link
Member

Thanks @sloretz for posting this. I can't reproduce it anymore... Removing env variable and openssl DLLs from the path is not enough. Uninstalling OpenSSL is not enough either o_O. Not sure how to get back in the broken state...

@dirk-thomas
Copy link
Member

Since e.path points to the loaded module we could add some logic in case of this exception which checks that this file actually exists and if it does print a message which indicates that dependencies of that library are likely missing and optionally include a guess what the user might need / point to a wiki page providing a detailed description.

@mikaelarguedas
Copy link
Member

Since e.path points to the loaded module we could add some logic in case of this exception which checks that this file actually exists and if it does print a message which indicates that dependencies of that library are likely missing and optionally include a guess what the user might need / point to a wiki page providing a detailed description.

Given that the error still doesnt give anything more than the module, guessing which missing dll is the cause may be hard. We could check the os and based on the platform point to the "install dependencies" section of the corresponding wiki page but I'm not sure we can give much clearer explanation given the little context we have. Or we can link to a single wiki page that says "you're likely missing dependencies" and store the corresponding links on that page.

@dirk-thomas
Copy link
Member

I would keep the logic simple and point to a single page / ticket which than provides enough information to guide the user further.

@mikaelarguedas
Copy link
Member

Uninstalling OpenSSL is not enough either o_O. Not sure how to get back in the broken state...

Follow up on this: looks like uninstalling openssl didnt remove the culprit dll from System32 that's why it's still working. Removing it by hand allows me to reproduce

@sloretz
Copy link
Contributor Author

sloretz commented Sep 12, 2017

@dirk-thomas did you mean that ros2cli would print the warning, or that it would be printed from here?

rclpy_implementation = importlib.import_module('._rclpy', package='rclpy')

@dirk-thomas
Copy link
Member

It needs to be handled in rclpy wrapping the line you referenced.

@dirk-thomas dirk-thomas added the in progress Actively being worked on (Kanban column) label Sep 12, 2017
@mikaelarguedas mikaelarguedas added in review Waiting for review (Kanban column) and removed in progress Actively being worked on (Kanban column) labels Sep 12, 2017
@mikaelarguedas mikaelarguedas removed the in review Waiting for review (Kanban column) label Sep 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants