Установка AssimpCy - PullRequest
       19

Установка AssimpCy

1 голос
/ 09 марта 2020

Для школьного проекта мне нужно использовать библиотеку OpenGL Python.

Вот часть кода, предоставленная моими учителями:

import OpenGL.GL as GL              # standard Python OpenGL wrapper
import glfw                         # lean window system wrapper for OpenGL
import numpy as np                  # all matrix manipulations & OpenGL args
import assimpcy 

Я успешно установил OpenGL , библиотеки glfw и numpy, но я не могу установить assimpcy.

Установка с помощью pip не работает, я получаю эту ошибку:

ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-i0q0sk1z/AssimpCy/setup.py'"'"'; __file__='"'"'/tmp/pip-install-i0q0sk1z/AssimpCy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: /tmp/pip-install-i0q0sk1z/AssimpCy/
    Complete output (26 lines):
    running egg_info
    creating pip-egg-info/AssimpCy.egg-info
    writing pip-egg-info/AssimpCy.egg-info/PKG-INFO
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-i0q0sk1z/AssimpCy/setup.py", line 58, in <module>
        setup(
      File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 289, in run
        writer(self, ep.name, os.path.join(self.egg_info, ep.name))
      File "/usr/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 621, in write_pkg_info
        metadata.write_pkg_info(cmd.egg_info)
      File "/usr/lib/python3.8/distutils/dist.py", line 1117, in write_pkg_info
        self.write_pkg_file(pkg_info)
      File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 167, in write_pkg_file
        long_desc = rfc822_escape(self.get_long_description())
      File "/usr/lib/python3.8/distutils/util.py", line 475, in rfc822_escape
        lines = header.split('\n')
    TypeError: a bytes-like object is required, not 'str'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Затем я попытался чтобы скомпилировать его самостоятельно, я следовал этому уроку: https://assimpcy.readthedocs.io/en/latest/install.html

Я скачал скомпилированный и установил Assimp, скачал github-репо AssimpCy, но когда я запустил это:

python setup.py build_ext -I'/home/alexis/Documents/assimp-5.0.1/include/assimp' -L'/home/alexis/Documents/AssimpCy'

Я получаю эту ошибку:

running build_ext
building 'assimpcy.all' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -I/usr/lib/python3.8/site-packages/numpy/core/include -I/usr/include/assimp -I/usr/local/include/assimp -I/home/alexis/Documents/assimp-5.0.1/include/assimp -I/usr/include/python3.8 -c ./assimpcy/all.cpp -o build/temp.linux-x86_64-3.8/./assimpcy/all.o -w -O3 -fopenmp -std=c++0x
In the file included from /home/alexis/Documents/assimp-5.0.1/include/assimp/types.h:59,
                 from ./assimpcy/all.cpp:537:
/home/alexis/Documents/assimp-5.0.1/include/assimp/defs.h:53:10: fatal error: assimp/config.h : No file or folder of this kind
   53 | #include <assimp/config.h>
      |          ^~~~~~~~~~~~~~~~~
compilation over.
error: command 'gcc' failed with exit status 1

У вас есть идея, которая может помочь?

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Хорошо, я наконец нашел ошибку. Казалось, что при установке Assimp произошла ошибка. Я просто переустановил Assimp и запустил python setup.py build_ext, и это сработало.

0 голосов
/ 12 марта 2020

Я думаю, что проблема вызвана неправильной папкой включения. Вместо этого

python setup.py build_ext -I'/home/alexis/Documents/assimp-5.0.1/include/assimp' -L'/home/alexis/Documents/AssimpCy'

попробуйте использовать это

python setup.py build_ext -I'/home/alexis/Documents/assimp-5.0.1/include/' -L'/home/alexis/Documents/AssimpCy'

Все публикации c находятся в папке include / assimp и будут включены следующим образом:

#include <assimp/types.h>

Таким образом, добавление префикса assimp к включению приведет к неправильному расположению для публикации c. При установке include для включения / assimp оператор включения завершится ошибкой.

...