Hi Clark, you were on the right track with the DISPLAY variable. I had some other stuff on the plate and today I started a new approach. Long story short, I have an alias for ssh in my bash profile (our admin set that up years ago) which hasn't bit me until now: alias ssh='ssh -X' This seems to work fine on Leap 15.2 and Victoria, though, but I'll just need to make sure not to use the alias on Ubuntu, I guess. Maybe I'll remove the alias entirely. Thanks! Eugen Zitat von Clark Boylan <cboylan@sapwetik.org>:
On Tue, Apr 4, 2023, at 7:34 AM, Eugen Block wrote:
Hi *,
today I upgraded my virtual test environment from V to W when (Ubuntu 20.04) all of a sudden cli commands didn't work anymore with this stack trace:
---snip--- root@control01:~# openstack network agent list Traceback (most recent call last): File "/usr/bin/openstack", line 6, in <module> from openstackclient.shell import main File "/usr/lib/python3/dist-packages/openstackclient/shell.py", line 23, in <module> from osc_lib import shell File "/usr/lib/python3/dist-packages/osc_lib/shell.py", line 24, in <module> from cliff import app File "/usr/lib/python3/dist-packages/cliff/app.py", line 22, in <module> import cmd2 File "/usr/lib/python3/dist-packages/cmd2.py", line 585, in <module> _ = pyperclip.paste() File "/usr/lib/python3/dist-packages/pyperclip/__init__.py", line 667, in lazy_load_stub_paste copy, paste = determine_clipboard() File "/usr/lib/python3/dist-packages/pyperclip/__init__.py", line 558, in determine_clipboard return init_gi_clipboard() File "/usr/lib/python3/dist-packages/pyperclip/__init__.py", line 167, in init_gi_clipboard gi.require_version('Gtk', '3.0') File "/usr/lib/python3/dist-packages/gi/__init__.py", line 129, in require_version raise ValueError('Namespace %s not available' % namespace) ValueError: Namespace Gtk not available ---snip---
I found this bug [1] describing the same issue but there has been no progress. I posted my comments there as well. I found one way to get the openstack shell to work by installing libgtk-3-dev (I found a hint in a search engine). Apparently, python3-cmd2 requires python3-pyperclip which requires python3-gi and so on. Is this really the desired way? I didn't notice anything in the release notes (maybe I missed it). When comparing to a different environment (Victoria on baremetal) I see that libgtk-3 is installed there (not -dev though), but even with libgtk-3-0 the error message was still present. So the question is, which dependencies are missing where? It's not really obvious to me. Could this already be fixed in Xena? If it is fixed there I could do the double upgrade, of course, especially since Wallaby is already under extended maintenance. Any comments are appreciated.
I know you've marked this invalid elsewhere, but I think there is an interesting problem somewhere here. In particular I've cloned https://github.com/asweigart/pyperclip which backs the pyperclip pypi package https://pypi.org/project/pyperclip/. Reading determine_clipboard() it seems to do all this extra work (on Linux anyway) if DISPLAY is set. One easy workaround may be to unset that env var in your terminals when running openstackclient.
That said looking more closely init_gi_clipboard() isn't in the current code base. Looking at the history of the project: `git log -p | grep init_gi_clipboard` produces no results either. This makes me wonder where that is coming from and what version/source of pyperclip you are using. If I grab pyperclip 1.8.2 (which is the upper constraints version for wallaby and xena) from pypi this function doesn't appear to exist there either. It is possible they rewrote their git history at some point, but best I can tell your version of pyperclip doesn't share code or history with the version on pypi specified in upper constraints for wallaby and xena.
Also it looks like if you install xsel or xclip that pyperclip will prefer those tools over the gtk bindings.
Thanks, Eugen
[1] https://bugs.launchpad.net/ubuntu/+source/python-openstackclient/+bug/194566...