0

I hope someone here knows about PyHLA. Basically it allows you to use C++ code in python API. I'm trying to build it with python3.6 using cmake because i need to run a morse simulation with it and morse need at least python3.3. I have python 3.6 and 2.7 and I don't know why but I cannot build with python 3.6.

This is what i get running cmake . -DPYTHON_EXECUTABLE=/usr/bin/python3.6:

-- Configuring PyHLA version 1.1.1
Python 3.6.9
-- Using Python: 
CMake Error at CMakeLists.txt:29 (message):
  You need at least Python 2.5, found:
-- Configuring incomplete, errors occurred!
See also "/home/mohamed/Documents/PyHLA-1.1.1-Source/CMakeFiles/CMakeOutput.log".

When I run cmake . -DPYTHON_EXECUTABLE=/usr/bin/python2.7, I get:

-- Configuring PyHLA version 1.1.1
-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.17") 
-- Using Python: 2.7.17
-- Python modules will be installed in: /usr/local
Cannot find Python mkhowto rules for generating doc not added.
-- HLA 1.3 RTI library found: /usr/local/lib/libRTI-NG.a /usr/local/lib/libRTI-NGd.so
-- IEEE 1516 RTI library found: /usr/local/lib/libRTI1516.a /usr/local/lib/libRTI1516d.so
-- IEEE 1516 Evolved RTI library found: /usr/local/lib/libRTI1516e.a /usr/local/lib/libRTI1516ed.so
-- HLA 1.3 RTI FedTime found: /usr/local/lib/libFedTime.a /usr/local/lib/libFedTimed.so
-- IEEE 1516 RTI FedTime found: /usr/local/lib/libFedTime1516.a /usr/local/lib/libFedTime1516d.so
-- IEEE 1516 Evolved RTI FedTime found: /usr/local/lib/libFedTime1516e.a /usr/local/lib/libFedTime1516ed.so
-- HLA 1.3 RTI headers found: /usr/local/include/hla13
-- IEEE 1516 RTI headers found: /usr/local/include/hla13
-- IEEE 1516 Evolved RTI headers found: /usr/local/include/hla13
-- Found CERTI version: 4.0.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mohamed/Documents/PyHLA-1.1.1-Source

The problem is when I build with python2.7 and try to use python3.6, of course I get an error:

Import Error: undefined symbol _Py_ZeroStruct

Has anyone ever managed to use hla with Morse?

here is the CMakeLists.txt :

PROJECT(PyHLA C CXX)
# SET(CMAKE_VERBOSE_MAKEFILE ON)

CMAKE_MINIMUM_REQUIRED(VERSION 3.7.2)

SET(PACKAGE_NAME "PyHLA")
SET(PACKAGE_VERSION_MAJOR "1")
SET(PACKAGE_VERSION_MINOR "1")
SET(PACKAGE_VERSION_PATCH "2cvs")
SET(PACKAGE_VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_PATCH}")

MESSAGE(STATUS "Configuring ${PACKAGE_NAME} version ${PACKAGE_VERSION}")

SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/share/scripts)
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})

FIND_PACKAGE(PythonLibs REQUIRED)
FIND_PACKAGE(PythonInterp REQUIRED)
MESSAGE(STATUS "Using Python: ${PYTHON_VERSION_STRING}")
MESSAGE(STATUS "python_packages_path : ${PYTHON_PACKAGES_PATH}")
MESSAGE(STATUS "python_version : ${PYTHON_VERSION_STRING}")
MESSAGE(STATUS "python_include_path : ${PYTHON_INCLUDE_PATH}")
MESSAGE(STATUS "python_library : ${PYTHON_LIBRARY}")

SET(PYTHON_NEEDED_VERSION "2.5")
IF("${PYTHON_VERSION_STRING}" VERSION_LESS "${PYTHON_NEEDED_VERSION}")
    message(FATAL_ERROR "You need at least Python ${PYTHON_NEEDED_VERSION}, found: ${PYTHON_VERSION_STRING}")
ENDIF("${PYTHON_VERSION_STRING}" VERSION_LESS "${PYTHON_NEEDED_VERSION}")

IF(NOT PYTHON_PACKAGES_PATH)
    EXECUTE_PROCESS(
        COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/GetPackagesPath.py"
        OUTPUT_VARIABLE PYTHON_PACKAGES_PATH)
    MESSAGE(STATUS "Found Python modules: ${PYTHON_PACKAGES_PATH}")
    SET(PYTHON_PACKAGES_PATH "${PYTHON_PACKAGES_PATH}"
        CACHE PATH "Path to Python modules.")
ENDIF(NOT PYTHON_PACKAGES_PATH)

# Use the PYTHON_PACKAGES_PATH as a default CMAKE_INSTALL_PREFIX
IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
    SET(CMAKE_INSTALL_PREFIX "${PYTHON_PACKAGES_PATH}"
        CACHE PATH "PyHLA install path prefix, prepended onto install directories." FORCE)
ENDIF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
MESSAGE(STATUS "Python modules will be installed in: ${CMAKE_INSTALL_PREFIX}")

ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(hla)
ADD_SUBDIRECTORY(test)

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Python bindings for the Modeling and Simulation (M&S) High Level Architecture (HLA)")
SET(CPACK_PACKAGE_VENDOR "Petr Gotthard")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
SET(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
SET(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})

SET(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
SET(CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION_PATCH})

IF (WIN32)
    SET(CPACK_SOURCE_GENERATOR "ZIP")
    SET(CPACK_GENERATOR "NSIS;ZIP")
    SET(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-win32-py${PYTHON_VERSION_STRING}")
ELSE (WIN32)
    SET(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
    SET(CPACK_GENERATOR "TGZ;ZIP;RPM")
ENDIF (WIN32)

SET(CPACK_SOURCE_IGNORE_FILES
    "~" ".log" ".pdf" ".dvi" ".pyc" ".so" ".dll" ".zip" ".tar.gz" ".rpm"
    ".comFedRTI."
    "/.cvsignore" "/Makefile" "/CMakeCache.txt" "/cmake_install.cmake" "/CPack.*.cmake"
    "/Testing"
    "/CVS/" "/CMakeFiles/" "/_CPack_Packages/")

INCLUDE(CPack)

### Uninstall ###
configure_file("${CMAKE_HOME_DIRECTORY}/cmake_uninstall.cmake.in" "cmake_uninstall.cmake" IMMEDIATE @ONLY)
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "cmake_uninstall.cmake")
mhzar
  • 31
  • 4
  • Welcome to Stack Overflow! Here we prefer **textual** representation of the error message to *images*. Please, fix you question post by inserting the text of the error message. See also [ask]. – Tsyvarev Feb 27 '20 at 11:16
  • I did it. Now it's the error message. – mhzar Feb 27 '20 at 12:32
  • Can you provide the CMake file you are using when you run `cmake`? Or at least a link to the repository you are using? Are you following some tutorial to build it? – Kevin Feb 27 '20 at 13:05
  • You might try setting `Python_ROOT_DIR` instead of the `PYTHON_EXECUTABLE` variable when running `cmake`. – Kevin Feb 27 '20 at 13:08

0 Answers0