6

I am trying to following the answer to this question in an attempt to copy to clipboard however all solutions provided in the answer seem to have failed me. On macOS, I have successfully used pyperclip and subprocess.run to copy to clipboard as described in the linked post, however on centOS neither works. I have also tried using Tkinter on macOS however when I run the following simple code:

  from tkinter import Tk
  r = Tk()

I get the following deprecation warning:

DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.

I don't really want to build my application with deprecated dependencies however seeing that centOS doesn't support pyperclip or subprocess.run I feel like I have no other options.

Specifically I would like to know if there exists a good solution to my problem, that is, I want to copy to clipboard on centOS and ideally, I want a solution that will work on "most" platforms. Please note that I am using python3. Thanks

stovfl
  • 14,172
  • 7
  • 20
  • 46
Mathew
  • 1,104
  • 4
  • 22
  • 46
  • Are you using python2-x now? – jizhihaoSAMA May 19 '20 at 09:38
  • No I'm using python3 on both centos and macos. Thanks for pointing out that this wasn't clearly stated, I have updated my question accordingly – Mathew May 19 '20 at 09:56
  • In Python3,if you want to import tkinter you need to use `import tkinter` not `import Tkinter`. – jizhihaoSAMA May 19 '20 at 09:58
  • Thanks for pointing this out, I have changed my question again. I just ran this and unfortunately I still get the same deprecation warning – Mathew May 19 '20 at 10:04
  • Maybe you need to update your `tkinter`.Here is [something](https://www.python.org/download/mac/tcltk/) maybe will help. – jizhihaoSAMA May 19 '20 at 10:07
  • on linux `pyperclip` uses bash command `xclip` or `xsel` so if you have installed `xclip` or `xsel` then it should work or you can do the same using even `subprocess.run("xclip ....")`. But `xclip` or `xsel` may need `X11` `XWindow` (the same with `tkinter` - it needs `XWindow`/`X11`) – furas May 19 '20 at 10:30
  • BTW: do you really has to use clipboard? Maybe you could save it in file and later read from file? It works on all systems. – furas May 19 '20 at 11:10
  • I would like to save a password to clipboard so the user can paste the password into a login without needing to show the password on screen. However, even beyond this particular goal, I feel that there should be a straightforward way to interface with the clipboard on linux. Thanks for recommending xclip and xsel, I'll take a look at these – Mathew May 19 '20 at 20:37

1 Answers1

1

You have 2 options:

  1. Ignore the DEPRECATION WARNING: See this post Using tkinter with Catalina, how to avoid deprecation warning? helped me a lot.

  2. Upgrade Python: See the official documentation IDLE and tkinter with Tcl/Tk on macOS

FGrunge
  • 31
  • 1
  • 4