Kivy: Kivy 不适用于 Ubuntu 17.10

创建于 2017-10-24  ·  40评论  ·  资料来源: kivy/kivy

版本

  • Python:2.7 和 3.6
  • 操作系统:Ubuntu 17.10
  • 基维:1.10
  • Kivy 安装方式:PPA

你好,
我已经在 Ubuntu 17.10 中安装了 kivy,但我似乎无法让它工作。 我尝试了很多东西。
我已经尝试过 Python 2 和 3,也在虚拟机中尝试过。

使用这个简单的应用程序:

从 kivy.app 导入应用程序
应用程序()。运行()

我得到:

[INFO] [Logger] 记录日志 /home/twistx77/.kivy/logs/kivy_17-10-21_1.txt
[信息] [Kivy] v1.10.0
[信息] [Python] v3.6.3(默认,2017 年 10 月 3 日,21:45:48)
[海湾合作委员会 7.2.0]
回溯(最近一次调用最后一次):
文件“/home/twistx77/temp/test.py”,第 2 行,在
从 kivy.app 导入应用程序
文件“/usr/lib/python3/dist-packages/kivy/app.py”,第 319 行,在
从 kivy.base 导入 runTouchApp,stopTouchApp
文件“/usr/lib/python3/dist-packages/kivy/base.py”,第 30 行,在
从 kivy.event 导入 EventDispatcher
文件“/usr/lib/python3/dist-packages/kivy/event.py”,第8行,在
导入kivy._event
导入错误:/usr/lib/python3/dist-packages/kivy/_event.cpython-36m-x86_64-linux-gnu.so:未定义符号:PyFPE_jbuf

我也验证了论坛中的一些人有同样的问题。

最有用的评论

@Twistx77

我已经用 python3.6 做了和以前一样的事情,它对我有用 - 卸载了 Cython 和 python3-kivy,并在上面提到的版本中使用 pip(不是 apt-get!)安装了 Cython 和 kivy。 我正在使用 Ubuntu 17.10

pip3 安装 Cython==0.23
pip3 安装 kivy==1.9.1

所有40条评论

ubuntu 17.10 + kivy 1.10 也有同样的问题。
Kivy 1.9.1 + python 2.7.14 有一个不同的错误。 我收到此错误消息
[INFO ] [OSC ] using <multiprocessing> for socket [INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored) X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 4 (X_DestroyWindow) Resource id in failed request: 0x0 Serial number of failed request: 165 Current serial number in output stream: 166
请解决。
仅供参考 - Opensuse Tumbleweed 做同样的事情。 Kivy就是不会跑

我也遇到了同样的问题,python 2.7.14、kivy 1.10.0 和 ubuntu 17.10,

同样的问题在这里。

使用 Ubuntu 16.04 版本是一个糟糕的解决方法,但 Kivy 有效!!

:-(

Cordiali SalutiFrancesco Cerone
电话。

2017年10月29日11:30 GMT + 01:00马库斯·克莱因[email protected]

同样的问题在这里。


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/5453#issuecomment-340252026或静音
线程
https://github.com/notifications/unsubscribe-auth/ALEi4VflNryMejJk8G34CBD--GnDkCyOks5sxFPTgaJpZM4QE60X
.

可以确认我有同样的问题。 我还没有找到修复方法。

描述:Ubuntu 17.10
版本:17.10

python3-kivy/artful,now 1.10.0-0~stable0+201708191146~pkg175~ubuntu17.10.1 amd64 [installed]
python3-kivy-bin/artful,now 1.10.0-0~stable0+201708191146~pkg175~ubuntu17.10.1 amd64 [installed,automatic]
python3-kivy-common/artful,now 1.10.0-0~stable0+201708191146~pkg175~ubuntu17.10.1 amd64 [installed,automatic]

我切换回 Ubuntu 17.10 提供的 Kivy 1.9.1 版。 此外,我不得不将我的显示服务器从 Wayland 切换回 Xorg。 在使用 Wayland 时,Kivy 尝试使用 Raspberry Pi 的 egl-rpi 驱动程序运行,这在普通 amd64 桌面上没有意义。

当我尝试运行一个简单的 kivy 示例(3D 渲染)时,我遇到了同样的问题。 基维不工作

Ubuntu 版本:17.10


[INFO] [Logger] 在/home/susheel/.kivy/logs/kivy_17-11-01_7.txt 中记录日志
[信息] [Kivy] v1.10.0
[信息] [Python] v2.7.14(默认,2017 年 9 月 23 日,22:06:14)
[海湾合作委员会 7.2.0]
回溯(最近一次调用最后一次):
文件“main.py”,第 15 行,在
从 kivy.app 导入应用程序
文件“/usr/lib/python2.7/dist-packages/kivy/app.py”,第319行,在
从 kivy.base 导入 runTouchApp,stopTouchApp
文件“/usr/lib/python2.7/dist-packages/kivy/base.py”,第30行,在
从 kivy.event 导入 EventDispatcher
文件“/usr/lib/python2.7/dist-packages/kivy/event.py”,第8行,在
导入kivy._event
导入错误:/usr/lib/python2.7/dist-packages/kivy/_event.x86_64-linux-gnu.so:未定义符号:PyFPE_jbuf

同样的问题在这里

irc 上的用户parabolize报告了 gnome 桌面版和 sdl2 版本以及多重采样支持之间的问题,对于受此问题影响的人,这些解决方法中的任何一个都应该有效。

  • 使用其他桌面环境
  • 使用 sdl2 版本between 2.0.5 and 2.0.6
  • 在 kivy 中禁用多重采样(可以通过编辑 ~/.kivy/config.ini 并将多重采样设置为 0 来完成)

请报告它是否为您解决了问题,如果是多个不同的错误,我们应该打开单独的问题。

我尝试了以上两个:

  • 禁用多重采样 -> 不起作用
  • 安装不同的桌面环境 (XFCE4) -> 也不起作用

两者都报告了相同的错误。

你好,

我可以确认 necrolin 的评论。

  • 禁用多重采样 -> 不起作用
  • 安装不同的桌面环境(Deepin DE)-> 也不起作用

另外,我尝试在 2.06 版中安装软件包 libsdl2-dev,但它也无法正常工作。

顺便说一句,很好的昵称哈哈。

两个不同的问题。 Tchayo 见 #5476

我可以确认将多样本归零在 Ubuntu 17.10 上有效。 我以前关闭了wayland,但我认为这没有什么不同,因为我在更改 _config.ini_ 选项之前遇到了错误。

@rroa这真的很有趣。 我尝试将多样本数设为零 && 也禁用了wayland,但是我仍然在 python 3 下全新安装 Ubuntu 17.10 时看到此错误。因此,我们的安装之间肯定有其他不同之处。

我们再次讨论两个不同的问题。 一个是导入事件循环时出错,另一个是 sdl2 问题,设置不受支持(例如 gnome 中的多重采样)。 如果您收到 Twistx77 之类的错误,那么您就在正确的地方讨论您的问题。 如果您有像 Tchayo 这样的错误,请转到问题 #5476。

我确认问题 #5476 上的抛物线解决方案解决了 ubuntu 17.10 中 kivy 1.9.1 的问题

我不明白的是,具有相同版本的相同发行版怎么可能在某些机器上有 sdl2 问题而在其他机器上有不同的问题。 是不是跟司机有什么关系? 两台机器不是使用完全相同的软件工作吗?

我没有升级或降级 sdl2 我所做的就是这样:
在 kivy 中禁用多重采样(可以通过编辑 ~/.kivy/config.ini 和 settinworg 多重采样为 0 来完成)
它奏效了,所以也许多重采样是问题所在!?!
仅供参考:这仅适用于 kivy 1.9.1..请参阅问题 #5476

自从 Kivy 从 Pygame 迁移到 SDL2 以来,多重采样在很多情况下都被破坏了,我们目前无法在 Kivy 中发现问题,也可能是 SDL2 中的上游错误。 例如,请参见https://github.com/kivy/kivy/issues/3576

我也遇到了旧显卡的问题,Pygame 将多重采样设置为 8 并产生可见效果,而在与 SDL2 相同的环境中工作的最大值为 4。

有同样的问题。 发现 kivy v1.9.1 适用于 Python v2.7.14,在 Ubuntu 17.10 中将 ~/.kivy/config.ini 中的多重采样设置为 0。

谢谢@saubhik它也适用于我!

安装了 Cython==0.23 和 kivy==1.9.1 并且它可以工作。 没改配置。
所需的一些依赖项可能由 apt-get 安装,因为我用它来安装(非工作版本)python-kivy。 然后我删除了 Cython 和 python-kivy,然后在前面提到的版本中使用 pip 安装了它们(首先是 Cython)。

祝你好运

我可以确认 1.9.1 在 python 2.7 上工作正常,但在 3 上不起作用,即使它没有抛出与 1.10 相同的错误。

我刚刚尝试了 Ubuntu 17.10 的新安装,我只安装了带有 kivy 网站中提供的 PPA 的 kivy 并安装了这个:

须藤 apt-get install python-kivy=1.9.1-1build3

@Twistx77

我已经用 python3.6 做了和以前一样的事情,它对我有用 - 卸载了 Cython 和 python3-kivy,并在上面提到的版本中使用 pip(不是 apt-get!)安装了 Cython 和 kivy。 我正在使用 Ubuntu 17.10

pip3 安装 Cython==0.23
pip3 安装 kivy==1.9.1

我不知道这是我安装的东西还是只是 Ubuntu 更新,但现在我遇到了和以前一样的错误。

编辑:

我已经按照 ZenCODE 的指示编译 kivy,使其在 17.10 中工作: https: //groups.google.com/forum/#!topic/kivy -users/lRLfxp1Sywg

@Twistx77我通过 pip 安装到虚拟环境 (v1.9.1) 中,即使系统完全是最新的,它似乎仍然可以正常工作。 如果它突然停止为您工作,我假设存在某种冲突导致您的计算机上出现此错误。

顺便说一句,在编译时您是否设法使 1.10 版正常工作? 如果是这样,我也试一试。 我上周尝试编译(显然没有使用 ZenCODE 解决方案),但它无法为我编译。

我通过手动安装并使用旧的 pygame 渲染器来让 kivy 工作。 我猜是一种解决方法。

有相同的问题Twistx77在卡利光蟒蛇2.7.14和kivy 1.10.0

遵循BartoszCki解决方案并使其工作。

在 Ubuntu 17.10 上有同样的问题。

错误:

/Layouts, custom widgets and attributes/stack/stack.py"
Purge log fired. Analysing...
Purge finished!
[INFO   ] [Logger      ] Record log in /home/geistic/.kivy/logs/kivy_18-02-11_88.txt
[INFO   ] [Kivy        ] v1.10.0
[INFO   ] [Python      ] v3.6.3 (default, Oct  3 2017, 21:45:48)
[GCC 7.2.0]
/usr/bin/python3 "/home/geistic/Programming/python/Kivy/Layouts, custom widgets and attributes/stack/stack.py"
 Traceback (most recent call last):
   File "/home/geistic/Programming/python/Kivy/Layouts, custom widgets and attributes/stack/stack.py", line 4, in <module>
     from kivy.app import App
   File "/usr/lib/python3/dist-packages/kivy/app.py", line 319, in <module>
     from kivy.base import runTouchApp, stopTouchApp
   File "/usr/lib/python3/dist-packages/kivy/base.py", line 30, in <module>
     from kivy.event import EventDispatcher
   File "/usr/lib/python3/dist-packages/kivy/event.py", line 8, in <module>
     import kivy._event
 ImportError: /usr/lib/python3/dist-packages/kivy/_event.cpython-36m-x86_64-linux-gnu.so: undefined symbol: PyFPE_jbuf

@BartoszCki解决方案之后,一切似乎都有效,我可以确认。 尝试从官方 ubuntu 存储库安装,然后从 kivy's 安装,但没有一个成功。

卸载一切:

sudo apt-get remove --purge python3-kivy
sudo pip3 uninstall cython kivy
sudo apt autoremove

然后:

sudo pip3 install Cython==0.23
sudo pip3 install kivy==1.9.1

适用于 __Python 3.6.3(默认,2017 年 10 月 3 日,21:45:48)__。

我在 ubuntu 17.10 上遇到了这个问题,但由于 RecycleView 而依赖于 Kivy 1.10。 有没有一种简单的方法来强制 PyGame 而不是 SDL2 ? 这会解决它吗?

有人有解决方案吗? 我真的必须在 ubuntu 17.10 上使用 kivy 吗?

看看这个: https: //groups.google.com/forum/#!topic/kivy -users/lRLfxp1Sywg
这是部分解决方案,不适合生产,但用于教育目的看起来有效。

@0AlphaZero0虽然 PPA 现在可能无法在 17.10 上运行,但可以通过虚拟环境进行安装(请参阅 Kivy 网站上的说明)。

从源代码接缝构建和安装 Kivy 以在 Ubuntu 18.04 上工作,只需遵循文档中的本指南

对于 Ubuntu 17.10 和 Ubuntu 18.04,目前的建议(Mai 2018)是从每日 PPA安装。 正如@OBKF所说,从源代码构建也

在上面的评论中已经提到了,只是重申:在 Ubuntu 17.10 上,依赖项中有一个错误,解决方法是更改~/.kivy/config.ini一个值:

[graphics]
...
multisamples = 0

以上确认修复工作!

  1. apt-get 删除 python-kivvy cython
    (对于 python3,它是 python3-kivvy 和 cython3)
  2. pip 卸载 kivvy
  3. pip卸载cython
  4. pip 安装 cython==0.23
  5. pip 安装 kivy==1.9.1

工作!

Ubuntu 16.04.02
蟒蛇 2.7.11
点 10.0.1
赛通 0.23
基维 1.9.1

运行 Debian 时,从 PPA 安装可以工作,但会出现上述错误(“未定义符号:PyFPE_jbuf”)。 这来自编译器标志“--with-fpectl”,它似乎在 Ubuntu 17.10 和 Debian 中启用。
使用 pip 安装 kivy 可以解决这个问题。

在这里工作(hello world 示例):
[信息] [Kivy] v1.10.1
[信息] [Python] v3.6.6(默认,2018 年 6 月 27 日,14:44:17)
cython3 0.28.4-1 amd64 Python 3 的 C 扩展
Linux 4.15.0-3-amd64 #1 SMP Debian 4.15.17-1 (2018-04-19) x86_64 GNU/Linux

以上确认修复工作!

  1. apt-get 删除 python-kivvy cython
    (对于 python3,它是 python3-kivvy 和 cython3)
  2. pip 卸载 kivvy
  3. pip卸载cython
  4. pip 安装 cython==0.23
  5. pip 安装 kivy==1.9.1

工作!

Ubuntu 16.04.02
蟒蛇 2.7.11
点 10.0.1
赛通 0.23
基维 1.9.1

无法安装 kivy 1.9.1,使用 1.10.1 并且仍然有效! 谢谢!

想法

我已经在 Debian Buster 上确认了同样的错误:

ImportError: /usr/lib/python3/dist-packages/kivy/_event.cpython-36m-x86_64-linux-gnu.so: undefined symbol: PyFPE_jbuf

发现标准安装说明根本不起作用有点令人失望,尤其是当该错误在一年前报告并且解决方法是放弃安装说明并做一些完全不同的事情时。 对安装说明的更改可能适合此处。 </rant> _并为直率而道歉_

可能的原因

我相信这是一个包装问题。 代码似乎没有任何问题,但是构建和打包到*.deb文件的过程被破坏了。 该错误表明针对*.so的不同版本进行编译与正在运行的版本不同。

apt-get无法安装工作版本而pip install很好(请参阅fath0m's work around )这一事实使我想到了两个 _tentative_ 理论:

  • 构建过程使用的是较旧的操作系统,并且没有设置为创建多个版本,其中较新的操作系统安装了较新的库。
  • 构建过程正在使用pip install设置环境,错误地认为它会与apt-get设置相冲突。

替代修复

如果您不喜欢使用pip install _(人们有他们的理由)_ 的方法,那么可以从源代码构建 kivy ,而无需触及pip install
例如python3:

apt-get install python3
apt-get install cython3
# Results may vary for GL.  Find the package with: apt-cache search libgl1 dev
apt-get install libgl1-mesa-dev
apt-get install libgstreamer1.0-dev
apt-get install libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev
# I'm happy to edit in additional dependencies if you find them

git clone https://github.com/kivy/kivy.git
cd kivy python3 setup.py build_ext --inplace

PPA 已更新,并且至少在所有可用于构建的较新 OS 版本上构建。 17 似乎没有被列为构建选项(https://code.launchpad.net/~kivy-team/+recipe/kivy-stable/)所以我不确定我们能做些什么。

发现标准安装说明根本不起作用,这有点令人失望

这是一个社区项目,我们没有资源在每个操作系统配置上进行测试。 永远欢迎来自社区的 PR 来修复我们的构建配方。

就其价值而言,我在刚刚从 Raspbian Stretch 升级到 Raspbian Buster 的 Raspbian 装备上看到了这一点。

潜在错误涉及此处描述的有关 Cython 中设置的 FPECTL 标志的内容。 具体来说,是我迄今为止读到的关于正在发生的事情的最好描述。 这里是有关浮点异常控制模块的更多信息。

注意 fpectl 模块不是默认构建的,不鼓励使用它,除非在专家手中,否则可能会很危险。 有关更多详细信息,另请参阅限制和有关限制的其他注意事项部分。

因此,如果我现在想查看它是否为我自己的虚拟环境打开/关闭:

(oprint) $ python
Python 2.7.16 (default, Apr  6 2019, 01:42:57) 
[GCC 8.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import fpectl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named fpectl

好的,我可以看到在编译(大概是 Cython 的)期间没有打开标志。 从技术上讲,我认为我们讨论的是在我的虚拟环境中 Cython 安装的Includes下的cpython文件夹。

至于分析发生了什么,我必须假设在这种情况下 Kivy 1.10.1 中的某些内容是在打开该标志的情况下编译的,而我的实例已将其关闭。 (互联网上所有这些与此错误相关的所谓“修复”似乎是很多偶然性,随机尝试最终找到关于该标志的 OFF/OFF 或 ON/ON 匹配。 )

我注意到之前我曾尝试安装numpy但无论出于何种原因都没有成功。 许多问题似乎与这个模块有关,因为它可能会打开这个标志,因为它是数学密集型的。

我自己的错误是这样的:

ImportError: /home/pi/oprint/local/lib/python2.7/site-packages/kivy/_event.so: undefined symbol: PyFPE_jbuf

换句话说,在 Kivy 使用 cython 的编译步骤(通过pip install kivy )期间,二进制文件_event.so现在具有围绕其一个或多个函数的 FPECTL 包装器。 然而我注意到这个标志似乎在我的安装中处于关闭状态。

我面临的最大问题之一是 pip 试图重用其缓存版本或重用先前编译的轮子。

作品:

pip uninstall kivy
pip uninstall cython
pip install --force-reinstall --no-cache-dir cython==0.28.2
pip install --force-reinstall --no-cache-dir kivy==1.10.1

在虚拟环境的site-packages文件夹中运行grep -r . -e 'FPE'最终向我展示了没有与 Kivy 相关的*.so文件包含编译的令人讨厌的fpectl标志包装器文件。

此页面是否有帮助?
0 / 5 - 0 等级