1. 提示找不到managers
from managers import RobotisOp2GaitManager, RobotisOp2MotionManager
ModuleNotFoundError: No module named 'managers'
在导入RobotisOp2GaitManager
和RobotisOp2MotionManager
时提示找不到'managers'
模块。可以将webots安装目录darwin-op的libraries
下的文件复制到项目目录的libraries
下,这样控制目录中的代码导入manager
的时候就会从libraries
的python37文件夹中导入对应的mangaers
模块。
2. 配置webots使用anaconda创建的环境
选择Tools
目录下的Preferences
,在Python command中配置anaconda中创建的conda环境。
比如我的anaconda环境basket的配置如下(我的anaconda直接安装在E盘根目录),这里需要根据你的anaconda安装目录和环境名称进行相应的更改。
可以通过在控制器代码中执行下面的代码,确定使用的python的安装目录。
print(sys.version)
print("Python executable:", sys.executable)
3. 提示找不到controller
详细的报错内容如下:
Traceback (most recent call last):
File "ballPosition.py", line 3, in <module>
from controller import Robot, GPS, Supervisor
File "/Applications/Webots.app/lib/controller/python37/controller.py", line 31, in <module>
import _controller
ImportError: dlopen(/Applications/Webots.app/lib/controller/python37/_controller.so, 0x0002): tried: '/Users/zsq/robot/works/basketEnv/libraries/robotis-op2/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python39/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python38/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python37/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python36/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python35/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python27/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/python/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/managers/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/libzip/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/libraries/libssh/_controller.so' (no such file), '/Users/zsq/robot/works/basketEnv/controllers/ballPosition/_controller.so' (no such file), '/Applications/Webots.app/lib/controller/_controller.so' (no such file), '/Applications/Webots.app/lib/controller/python37/_controller.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/Webots.app/lib/controller/python37/_controller.so' (no such file), '/Applications/Webots.app/lib/controller/python37/_controller.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
WARNING: 'ballPosition' controller exited with status: 1.
预估出现这个问题的原因是使用的python是针对arm64架构的,而webots适配的是x86_64架构,两者不匹配导致出现这个问题。
解决方案如下:
(1)更换python的版本
进入python官网,点击下载然后选择macOS
比如我这里下载python3.7.9
安装直接默认选项,然后在webots中配置这个python的路径
比如我这里是:
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
这个路径默认的路径应该都是这个格式。
这样这个问题应该就解决了。
持续更新~~~~