To use pip, you must be running Jython v2.7.1 (downloaded from here: http://search.maven.org/remotecontent?filepath=org/python/jython-standalone/2.7.1/jython-standalone-2.7.1.jar). This is not compatible with Esper, so be sure to remove all of these files before upgrading, ie:
rm -rf ./automation/jsr223/000_components/000_Esper.py ./automation/lib/python/esper
With v2.7.1 installed, we can run the Jython from the openHAB installation to install pip
java -jar /openhab/conf/automation/jython/jython-standalone-2.7.1.jar -m ensurepip
Important: Do not upgrade pip, v18.1 in Jython/openHAB appears to have issues with some packages, v9.0.1 continues to work OK.
Ignore errors such as:
Failed to open /openhab/conf/automation/jython/bin/jython
This is pip/Python trying to run jython
as a shell application, which as it's running in Java won't work (there's probably an easy solution using a wrapper script, but as the only goal is to install packages, I have not done any work to make this happen)
You can then install any (pure Python) packages you want, for example, to install Requests:
java -jar /openhab/conf/automation/jython/jython-standalone-2.7.1.jar -m pip install requests
Note: you may have to restart openHAB to get access to the new libraries as the module cache is not reloaded. If nothing has attempted to import the module, it should just work with a reload of the script, however a full restart of the openHAB container is safest to ensure it's pulling all of the new modules in.
hi.
An installation error occurs.
Is there a solution?
Error :
Traceback (most recent call last):
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\jython-standalone-2.7.1.jar\Lib\runpy.py", line 161, in _run_module_as_main
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\jython-standalone-2.7.1.jar\Lib\runpy.py", line 72, in run_code
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_main.py", line 23, in
from pip._internal.cli.main import main as _main # isort:skip # noqa
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\cli\main.py", line 10, in
from pip._internal.cli.autocompletion import autocomplete
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\cli\autocompletion.py", line 9, in
from pip._internal.cli.main_parser import create_main_parser
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\cli\main_parser.py", line 7, in
from pip._internal.cli import cmdoptions
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\cli\cmdoptions.py", line 25, in
from pip._internal.cli.progress_bars import BAR_TYPES
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\cli\progress_bars.py", line 12, in
from pip._internal.utils.logging import get_indentation
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\utils\logging.py", line 18, in
from pip._internal.utils.misc import ensure_dir
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\utils\misc.py", line 34, in
from pip._internal.locations import get_major_minor_version, site_packages, user_site
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\locations.py", line 30, in
USER_CACHE_DIR = appdirs.user_cache_dir("pip")
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_internal\utils\appdirs.py", line 23, in user_cache_dir
return _appdirs.user_cache_dir(appname, appauthor=False)
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_vendor\appdirs.py", line 300, in user_cache_dir
path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA"))
File "C:\Users\seungsu2.kim.m2\repository\org\python\jython-standalone\2.7.1\Lib\site-packages\pip_vendor\appdirs.py", line 474, in _get_win_folder_from_registry
import _winreg
ImportError: No module named _winreg