安装 Kivy ubuntu 16.04 64 位

安装 Kivy ubuntu 16.04 64 位

操作系统:linux(ubuntu 16.04 LTS,64位)python_version:3.6.3

  • 使用虚拟环境。
  • 我尝试安装许多版本的 kivy 和许多不同版本的 cython,但总是出现相同的错误,如下所示。
  • 在输入“pip install kivy”后,将安装一些软件包:certifi(2017.11.5)chardet(3.0.4)Cython(0.26)docutils(0.14)idna(2.6)Kivy-Garden(0.1.4)pip(9.0.1)Pygments(2.2.0)requests(2.18.4)setuptools(38.4.0)urllib3(1.22)wheel(0.30.0)
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/pip-build-c8ofsvs6/kivy/kivy/include -I/usr/include/python3.6m -I/home/ubuntu/venv/include/python3.6m -c /tmp/pip-build-c8ofsvs6/kivy/kivy/_event.c -o

build/temp.linux-x86_64-3.6/tmp/pip-build-c8ofsvs6/kivy/kivy/_event.o /tmp/pip-build-c8ofsvs6/kivy/kivy/_event.c:4:20:致命错误:Python.h:没有这样的文件或目录编译终止。错误:命令'x86_64-linux-gnu-gcc'失败,退出状态为 1

  ----------------------------------------
  Failed building wheel for kivy
  Running setup.py clean for kivy
Failed to build kivy
Installing collected packages: kivy
  Running setup.py install for kivy ... error
    Complete output from command /home/ubuntu/venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-c8ofsvs6/kivy/setup.py';f=getattr(tokenize,

'打开',打开)(文件);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code,文件, 'exec'))” install --record /tmp/pip-vcdy_iv_-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/venv/include/site/python3.6/kivy: 使用 distutils

最后

>     > Detected compiler is unix
>     >     skipping '/tmp/pip-build-c8ofsvs6/kivy/kivy/_event.c' Cython extension (up-to-date)
>     >     building 'kivy._event' extension
>     >     creating build/temp.linux-x86_64-3.6
>     >     creating build/temp.linux-x86_64-3.6/tmp
>     >     creating build/temp.linux-x86_64-3.6/tmp/pip-build-c8ofsvs6
>     >     creating build/temp.linux-x86_64-3.6/tmp/pip-build-c8ofsvs6/kivy
>     >     creating build/temp.linux-x86_64-3.6/tmp/pip-build-c8ofsvs6/kivy/kivy
>     >     x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/pip-build-c8ofsvs6/kivy/kivy/include -I/usr/include/python3.6m -I/home/ubuntu/venv/include/python3.6m -c /tmp/pip-build-c8ofsvs6/kivy/kivy/_event.c -o
>     > build/temp.linux-x86_64-3.6/tmp/pip-build-c8ofsvs6/kivy/kivy/_event.o
>     >     /tmp/pip-build-c8ofsvs6/kivy/kivy/_event.c:4:20: fatal error: Python.h: No such file or directory
>     >     compilation terminated.
>     >      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
>     >     
>     >     ---------------------------------------- Command "/home/ubuntu/venv/bin/python3 -u -c "import setuptools,
>     > tokenize;__file__='/tmp/pip-build-c8ofsvs6/kivy/setup.py';f=getattr(tokenize,
>     > 'open', open)(__file__);code=f.read().replace('\r\n',
>     > '\n');f.close();exec(compile(code, __file__, 'exec'))" install
>     > --record /tmp/pip-vcdy_iv_-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/venv/include/site/python3.6/kivy" failed with error code
>     > 1 in /tmp/pip-build-c8ofsvs6/kivy/
  • 我也尝试过 cython 0.25.2

答案1

好的,现在我找到了这个问题。这是因为 pip 缓存包安装时,我的 cython 和 kivy 缓存中的包损坏了,因此每次 pip 都会使用已经损坏的缓存,而不是下载新的包。现在这些包是如何因为切换 python 默认版本而损坏的,sudo update-alternatives --config python3我在这里将 python3.6 设置为默认值并下载了所有包,但 ubuntu 的一些内部工作(不知道)并不真正支持 python3.6,它支持 python3.5,因此下载包 currept 并进入缓存,当我切换到 python3.5 时,ubuntu 工作得很好,但包已经损坏了。

答案2

除了 pip,还可以尝试 apt:

 sudo add-apt-repository ppa:kivy-team/kivy
 sudo apt-get update
 sudo apt-get install python-kivy # or python3-kivy if you're using python3

答案3

尝试安装pip install cython==0.25.0然后安装所有要求Kivy 官方安装说明

您可能可以使用的较新版本cython,但上次我尝试使用时cython 0.26kivy 1.10不得不降级cython

相关内容