morse-simulator / morse

The Modular OpenRobots Simulation Engine
http://morse-simulator.github.io/
Other
350 stars 155 forks source link

package install on Ubuntu 20.04 not working #822

Open auturgy opened 4 years ago

auturgy commented 4 years ago

Fresh install on Ubuntu 20.04 not working Steps to reproduce: sudo apt install morse-simulator morse create my_first_sim morse run my_first_sim

Full console dump (of a different run, but same error) is at shorturl.at/svJM6 but basically Blender quits due to uncaught exception, AttributeError: 'Object' object has no attribute 'hide'.

09:23 $ morse --version morse 1.4

09:23 $ morse check

dgerod commented 4 years ago

My first impression is that Blender API used in Morse is not compatible with your Blender version (2.82.7), MORSE is complaining about a missed attribute "hide". But, I have not checked in detail.

I use version 2.78c. So, could yo use an older Blender version? You could try with several ones, from 2.78c to 2.82.7, if you are interested in having latest Blender version.

severin-lemaignan commented 4 years ago

The Blender game engine has been removed from Blender 2.8x, and MORSE can not run without it. The last version of Blender that should work is 2.79.

dgerod commented 4 years ago

@severin-lemaignan, this important information about Blender/BGE version should be written in the README to avoid people to have this problem.

severin-lemaignan commented 4 years ago

Indeed. Can you send a quick PR with this information?

xinkai-jiang commented 2 years ago

Hi,

I met the same problem, but I change the version of the blender to 2.79b and then this exception was disappeared.

However, I meet another problem, when I run the first demo

morse run my_first_sim

It came out Segmentation fault

/usr/local/bin/morse:340: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
  config = configparser.SafeConfigParser()
* Adding </home/robot/my_first_sim> to PYTHONPATH and MORSE_RESOURCE_PATH.

* Using default scene in environment <my_first_sim>.

* morse 1.4

* Version 2.79.0 of Blender is untested but should work

/usr/local/bin/morse:302: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
  logger.warn("Blender's Python version could not be determined. "
* Blender's Python version could not be determined. Crossing fingers.

found bundled python: /home/robot/libraries/blender-2.79b/2.79/python
Read blend: /usr/local/share/morse/data/morse_default_autorun.blend
Writing: /tmp/morse_default_autorun.crash.txt
Segmentation fault (core dumped)

Did you meet before and how did you solve it?

Thank you.

severin-lemaignan commented 2 years ago

Can you post the content of /tmp/morse_default_autorun.crash.txt?

xinkai-jiang commented 2 years ago

Sorry, I change another machine using ubuntu 18.04 and fix all the problems, I guess it might related to ubuntu version. But in the previous environment, I cannot recover the exception before, and it came out with another fault.

/usr/local/bin/morse:340: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
  config = configparser.SafeConfigParser()
* Adding </home/robot/my_first_sim> to PYTHONPATH and MORSE_RESOURCE_PATH.

* Using default scene in environment <my_first_sim/>.

* morse 1.4

* Version 2.79.0 of Blender is untested but should work

/usr/local/bin/morse:302: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
  logger.warn("Blender's Python version could not be determined. "
* Blender's Python version could not be determined. Crossing fingers.

found bundled python: /home/robot/libraries/blender-2.79b/2.79/python
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
  File "/usr/lib/python3.8/io.py", line 52, in <module>
  File "/usr/lib/python3.8/abc.py", line 106
    print(f"Class: {cls.__module__}.{cls.__qualname__}", file=file)
                                                      ^
SyntaxError: invalid syntax
Aborted (core dumped)

But I guess it didn't write to /tmp/morse_default_autorun.crash.txt so I copy this file below for your reference.

# Blender 2.79 (sub 0), Commit date: 2018-03-22 14:10, Hash f4dc9f9d68b
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.logic.sensor_add(type='ALWAYS', name="MORSE_LOGIC")  # Operator
bpy.ops.logic.controller_add(type='PYTHON')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.empty_add(type='ARROWS', view_align=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.logic.sensor_add(type='ALWAYS', name="MORSE_LOGIC")  # Operator
bpy.ops.logic.controller_add(type='PYTHON')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.empty_add(type='ARROWS', view_align=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.logic.sensor_add(type='ALWAYS', name="MORSE_LOGIC")  # Operator
bpy.ops.logic.controller_add(type='PYTHON')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.empty_add(type='ARROWS', view_align=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.logic.sensor_add(type='ALWAYS', name="MORSE_LOGIC")  # Operator
bpy.ops.logic.controller_add(type='PYTHON')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.mesh.primitive_cube_add(view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator
bpy.ops.material.new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.empty_add(type='ARROWS', view_align=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.game_property_new()  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.object.select_all(action='DESELECT')  # Operator
bpy.ops.mesh.primitive_cube_add(view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))  # Operator

# backtrace
/home/robot/libraries/blender-2.79b/blender(BLI_system_backtrace+0x20) [0x1a6c700]
/home/robot/libraries/blender-2.79b/blender() [0x1078395]
/lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7f51a0416210]