Skip to content
This repository has been archived by the owner on Sep 5, 2022. It is now read-only.

Import error in python 3.8: No module named '_abc' #102

Open
MohamadHalwani opened this issue Jul 28, 2021 · 3 comments · Fixed by #126
Open

Import error in python 3.8: No module named '_abc' #102

MohamadHalwani opened this issue Jul 28, 2021 · 3 comments · Fixed by #126

Comments

@MohamadHalwani
Copy link

I have an issue trying to build cura-build-environment, after running sudo make in build file I'm getting this..

 [ 43%] Performing configure step for 'Savitar'
-- Find shared libpython: /usr/local/lib/libpython3.8.so
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/abc.py", line 64, in <module>
ImportError: No module named '_abc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/io.py", line 52, in <module>
  File "/usr/local/lib/python3.8/abc.py", line 68, in <module>
  File "/usr/local/lib/python3.8/_py_abc.py", line 35
    def __new__(mcls, name, bases, namespace, /, **kwargs):
                                              ^
SyntaxError: invalid syntax
CMake Error at cmake/FindSIP.cmake:47 (message):
  Failed to get Python3_SITELIB.  Error:
Call Stack (most recent call first):
  CMakeLists.txt:48 (find_package)


-- Configuring incomplete, errors occurred!

I tried re-installing python3.8 but still no luck.
This is a snippet of the CMakeLists.txt of Savitar, which I think is causing the issue:

project(savitar)
cmake_minimum_required(VERSION 3.8)    
##### find python
execute_process(COMMAND python3-config --prefix OUTPUT_VARIABLE PYTHON_SEARCH_PATH)
string(REGEX REPLACE "\n$" "" PYTHON_SEARCH_PATH "${PYTHON_SEARCH_PATH}")
file(GLOB_RECURSE PYTHON_DY_LIBS ${PYTHON_SEARCH_PATH}/lib/libpython*.dylib ${PYTHON_SEARCH_PATH}/lib/libpython*.so)
if (PYTHON_DY_LIBS)
    list(GET PYTHON_DY_LIBS 0 PYTHON_LIBRARY)
    message("-- Find shared libpython: ${PYTHON_LIBRARY}")
else()
    message(WARNING "Cannot find shared libpython, try find_package")
endif()#####

if(BUILD_PYTHON)
    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)

    # FIXME: Remove the code for CMake <3.12 once we have switched over completely.
    # FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs.
    if(${CMAKE_VERSION} VERSION_LESS 3.12)
        # FIXME: Use FindPython3 to find Python, new in CMake 3.12.
        # However currently on our CI server it finds the wrong Python version and then doesn't find the headers.
        find_package(PythonInterp 3.4 REQUIRED)
        find_package(PythonLibs 3.4 REQUIRED)
	find_package(Python3_EXECUTABLE Interpreter)
    else()
        # Use FindPython3 for CMake >=3.12
        find_package(Python3 3.4 REQUIRED COMPONENTS Interpreter Development)

    endif()

    find_package(SIP REQUIRED)
    if(NOT DEFINED LIB_SUFFIX)
        set(LIB_SUFFIX "")
    endif()

    include_directories(python/ src/ ${SIP_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS})
endif()

The first part of the CMakelists file starts by #### is added by me since I was facing another issue !
Which is this one:

  File "/usr/local/lib/python3.8/abc.py", line 64, in <module>
ImportError: No module named '_abc'

please help :)

@alexwoo1900
Copy link

alexwoo1900 commented Jul 31, 2021

There is no enough information to determine the cause of error, but I think the point is Python.

cura-build-environment downloads its own Python program and installs plugins for it. Then use it to install other modules.
If you installed another Python in OS before, cura-build-environment may confuse them.

@MohamadHalwani
Copy link
Author

I just commented the find_package(SIP REQUIRED) for now, it worked.

@Ghostkeeper
Copy link
Contributor

The _abc module is built-in in Python itself. This is what I get when importing it in a Python terminal:

>>> import _abc
>>> _abc
<module '_abc' (built-in)>

If you don't have the _abc module in your Python installation, I think your Python installation is broken. Since you're apparently not using the Python installation created in cura-build-environment but the one on your system, maybe you might want to repair the Python installation on your system somehow. There is very little we can do about it.

@jellespijker jellespijker linked a pull request Apr 12, 2022 that will close this issue
10 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants