[Topic DIscussion] UOS上面能用virtkey这个Python库吗
Tofloor
poster avatar
Luors
deepin
2022-09-29 03:19
Author

UOS上面能用virtkey这个Python库吗,我需要用到Python模拟键盘输入,但是pynput这个库有bug

Reply Favorite View the author
All Replies
ti-ji
deepin
2022-09-29 05:14
#1

有尝试吗?

Reply View the author
Luors
deepin
2022-09-29 05:39
#2
ti-ji

有尝试吗?

安装不上啊

Reply View the author
Jack
deepin
2022-09-29 06:27
#3

报什么错?

Reply View the author
Luors
deepin
2022-09-29 15:59
#4
Jack

报什么错?

In file included from src/python-virtkey.c:27:
src/python-virtkey.h:36:10: fatal error: X11/extensions/XTest.h: 没有那个文件或目录
#include
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

Reply View the author
fuuko
deepin
2022-09-29 16:30
#5

装一下相关的库呗,报错信息这么明确

Reply View the author
忘记、过去
deepin
2022-09-29 17:29
#6
Luors

In file included from src/python-virtkey.c:27:
src/python-virtkey.h:36:10: fatal error: X11/extensions/XTest.h: 没有那个文件或目录
#include
^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

sudo apt install libxtst-dev

Reply View the author
Luors
deepin
2022-09-30 19:04
#7
忘记、过去

sudo apt install libxtst-dev

感谢,安装了一大堆东西后,可以安装了,用pip list可以看到,但是引用的时候还是说没有virtkey这个模块,不知道哪里又处了问题......

Reply View the author
阿白
deepin
2022-10-01 00:16
#8
Luors

感谢,安装了一大堆东西后,可以安装了,用pip list可以看到,但是引用的时候还是说没有virtkey这个模块,不知道哪里又处了问题......

不应该呀,能安装一般就能使用的。你把IDE重启一下试试,或者在命令行用python,试试看能调用不。

Reply View the author
阿白
deepin
2022-10-01 00:22
#9

我看别人在UBUNTU里使用过的,所以linux下肯定可以使用

Reply View the author
Luors
deepin
2022-10-02 17:24
#10
阿白

不应该呀,能安装一般就能使用的。你把IDE重启一下试试,或者在命令行用python,试试看能调用不。

我也觉得不应该,可它就是用不了,我就是在命令行启动的python3,也没法导入

Reply View the author
Luors
deepin
2022-10-02 17:31
#11
Luors

我也觉得不应该,可它就是用不了,我就是在命令行启动的python3,也没法导入

Reply View the author
SamLukeYes
deepin
2022-10-02 18:05
#12
Luors

你这 pip 该不会是 python2 的 pip 吧doubt

Reply View the author
Luors
deepin
2022-10-02 18:19
#13
SamLukeYes

你这 pip 该不会是 python2 的 pip 吧doubt

是3.7的

lukas@lukas:~$ pip --version
pip 22.2.2 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

Reply View the author
Luors
deepin
2022-10-02 18:19
#14
SamLukeYes

你这 pip 该不会是 python2 的 pip 吧doubt

是3.7的

lukas@lukas:~$ pip --version
pip 22.2.2 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

Reply View the author
Luors
deepin
2022-10-06 08:09
#15

朋友们,我费了好大的劲,总算能够正常使用virtkey这个库了。这个库的优点是可以模拟输入unicode中的特殊字符,其他的库通常只能输入键盘字符。原本是ubuntu的库,其他发行版上面似乎没多少人用,在ubuntu可以直接命令行sudo apt install python3-virtkey安装,但是其他发行版需要用源代码。

下面分享一下安装的方法,以便帮助到其他人。

  1. 首先下载virtkey源代码virtkey-0.63.0.tar.gz,因为这个不在仓库。

  2. 解压源代码,可以看到里面有个setup.py

  3. 在终端打开当前目录,执行sudo python3 setup.py install

  4. 通常你会碰到错误,因为UOS没有自带那些依赖

  5. 安装各种依赖,这里没法细讲,系统环境因人而异,缺什么就安装什么,仿照前面的回答,可能要装的有点多

  6. 安装完依赖,升级python到3.10版本,建议通过python源代码升级(https://blog.csdn.net/iprobobo/article/details/123323047),我在低版本python无法使用virtkey,折腾了很久。

  7. 再次执行sudo python3 setup.py install

  8. 安装会报一些warning,忽略就是

  9. 检查是否能用,直接在终端输python3回车,输入下面两条语句:

    from virtkey import virtkey
    k = virtkey()
    

回车,没报错就是正常安装了。

Reply View the author