I'm using Ubuntu 14.04LTS
I tried to compile v1.8.0:
sudo make px4fmu-v3_default
Got the error:
('python import error: ', ImportError('No module named toml',))
Required python packages not installed.
On a GNU/Linux or MacOS system please run:
sudo pip install numpy toml
On Windows please run:
easy_install numpy toml
I tried installing with both pip and with apt-get and it installed properly. But, whenever I run the make of PX4 I get the same error.
16.04 LTS is the version of Ubuntu all our testing is done on. 14.04 might work, but it isn't "supported".
I would try installation using our convenience scripts: http://dev.px4.io/en/setup/dev_env_linux.html
They install toml as part of this:
sudo apt-get install python-argparse python-empy python-toml python-numpy python-dev python-pip -y
@zouboan I'm not sure if that is related to your problem but when I was working on the Cygwin Toolchain to support PX4 development under Windows I had the exact same error happening when building. I followed down where this comes from: https://github.com/PX4/Firmware/blob/b7d7d1209b331a571b205d5a0006e543c1891357/src/lib/mixer/geometries/tools/px_generate_mixers.py#L41-L53 and tried to manually import toml and numpy by manually executing the following commands on the bash shell:
import toml
import numpy
exit()
I found out that both packages were in fact installed but numpy failed to import whenever I ran the cygwin bash shell without the --login parameter (remember I'm on Windows). I honestly have no clue why this plays a role or if any of that translates to Ubuntu but you may try to look into the "non-login shell fails to import numpy" direction as well.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I'm assuming this was solved. I could try the latest toolchain setup convenience scripts in a 14.04 VM but if there's no demand I won't go through that effort.
I have a new way to solve the problem.
First, git clone https://github.com/uiri/toml.git
Second, cd toml
Third, python setup.py install
I have got the same error when
make posix_sitl_default gazebo
I solved it by modifying the PYTHONPATH and solve it:
export PYTHONPATH=/usr/bin/python
Hope it helps!
I honestly have no clue why this plays a role or if any of that translates to Ubuntu but you may try to look into the "non-login shell fails to import numpy" direction as well.
Update: By now I learned that it's not good to install python packages by running pip as root from https://dev.to/elabftw/stop-using-sudo-pip-install-52mn For a lot of packages it will result in a library installation that is tied to the root account and you can't import them using a different user.
So I think the solution is to run pip install --user toml and afterwards check again if you can import it as your user and it should work just fine.
I have same troubles. My system is : ubuntu 16.04 + kinetic + gazebo 9
when I open a shell:
python
import toml
and it works.
but i use :
make px4_sitl_default gazebo
it errors:
make px4_sitl_default gazebo
-- PX4 version: v1.11.0-beta1
-- PX4 config file: /home/tony/PX4_Firmware/boards/px4/sitl/default.cmake
-- PX4 config: px4_sitl_default
-- PX4 platform: posix
-- PX4 lockstep: enabled
-- cmake build type: RelWithDebInfo
-- The CXX compiler identification is GNU 5.4.0
-- The C compiler identification is GNU 5.4.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working CXX compiler using: Ninja
-- Check for working CXX compiler using: Ninja -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler using: Ninja
-- Check for working C compiler using: Ninja -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Building for code coverage
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.5.2", minimum required is "3")
-- build type is RelWithDebInfo
-- PX4 ECL: Very lightweight Estimation & Control Library v1.9.0-rc1-255-g47624a0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tony/PX4_Firmware/build/px4_sitl_default
[6/740] Generating mixer_multirotor_normalized.generated.h
FAILED: cd /home/tony/PX4_Firmware/build/px4_sitl_default/src/lib/mixer/MultirotorMixer && /usr/bin/python3 /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tools/px_generate_mixers.py --normalize -f /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_bottom_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_top_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_t.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_deadcat.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_h.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_s250aq.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_vtail.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_cw.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_pusher.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tri_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/twin_engine.toml -o mixer_multirotor_normalized.generated.h
Failed to import toml: No module named 'toml'You may need to install it using:
pip3 install --user toml[6/740] Generating mixer_multirotor.generated.h
FAILED: cd /home/tony/PX4_Firmware/build/px4_sitl_default/src/lib/mixer/MultirotorMixer && /usr/bin/python3 /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tools/px_generate_mixers.py -f /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_bottom_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_top_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_t.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_deadcat.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_h.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_s250aq.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_vtail.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_cw.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_pusher.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tri_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/twin_engine.toml -o mixer_multirotor.generated.h
Failed to import toml: No module named 'toml'You may need to install it using:
pip3 install --user toml[6/740] Generating mixer_multirotor_6dof.generated.h
FAILED: cd /home/tony/PX4_Firmware/build/px4_sitl_default/src/lib/mixer/MultirotorMixer && /usr/bin/python3 /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tools/px_generate_mixers.py --sixdof -f /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_bottom_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/dodeca_top_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_t.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/hex_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_cox_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/octa_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_deadcat.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_h.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_plus.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_s250aq.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_vtail.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_wide.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_cw.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_x_pusher.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/quad_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/tri_y.toml /home/tony/PX4_Firmware/src/lib/mixer/MultirotorMixer/geometries/twin_engine.toml -o mixer_multirotor_6dof.generated.h
Failed to import toml: No module named 'toml'You may need to install it using:
pip3 install --user toml[6/740] Generating uORB topic headers
FAILED: cd /home/tony/PX4_Firmware/msg && /usr/bin/python3 tools/px_generate_uorb_topic_files.py --headers -f actuator_armed.msg actuator_controls.msg actuator_outputs.msg adc_report.msg airspeed.msg airspeed_validated.msg battery_status.msg camera_capture.msg camera_trigger.msg cellular_status.msg collision_constraints.msg collision_report.msg commander_state.msg cpuload.msg debug_array.msg debug_key_value.msg debug_value.msg debug_vect.msg differential_pressure.msg distance_sensor.msg ekf2_timestamps.msg ekf_gps_drift.msg ekf_gps_position.msg esc_report.msg esc_status.msg estimator_innovations.msg estimator_sensor_bias.msg estimator_status.msg follow_target.msg geofence_result.msg gps_dump.msg gps_inject_data.msg home_position.msg hover_thrust_estimate.msg input_rc.msg iridiumsbd_status.msg irlock_report.msg landing_gear.msg landing_target_innovations.msg landing_target_pose.msg led_control.msg log_message.msg logger_status.msg manual_control_setpoint.msg mavlink_log.msg mission.msg mission_result.msg mount_orientation.msg multirotor_motor_limits.msg obstacle_distance.msg offboard_control_mode.msg onboard_computer_status.msg optical_flow.msg orb_test.msg orb_test_large.msg orb_test_medium.msg orbit_status.msg parameter_update.msg ping.msg position_controller_landing_status.msg position_controller_status.msg position_setpoint.msg position_setpoint_triplet.msg power_button_state.msg power_monitor.msg pwm_input.msg qshell_req.msg qshell_retval.msg radio_status.msg rate_ctrl_status.msg rc_channels.msg rc_parameter_map.msg rpm.msg safety.msg satellite_info.msg sensor_accel.msg sensor_accel_fifo.msg sensor_accel_integrated.msg sensor_accel_status.msg sensor_baro.msg sensor_combined.msg sensor_correction.msg sensor_gyro.msg sensor_gyro_fifo.msg sensor_gyro_integrated.msg sensor_gyro_status.msg sensor_mag.msg sensor_preflight.msg sensor_selection.msg servorail_status.msg subsystem_info.msg system_power.msg task_stack_info.msg tecs_status.msg telemetry_status.msg test_motor.msg timesync.msg timesync_status.msg trajectory_bezier.msg trajectory_waypoint.msg transponder_report.msg tune_control.msg uavcan_parameter_request.msg uavcan_parameter_value.msg ulog_stream.msg ulog_stream_ack.msg vehicle_acceleration.msg vehicle_air_data.msg vehicle_angular_acceleration.msg vehicle_angular_velocity.msg vehicle_attitude.msg vehicle_attitude_setpoint.msg vehicle_command.msg vehicle_command_ack.msg vehicle_constraints.msg vehicle_control_mode.msg vehicle_global_position.msg vehicle_gps_position.msg vehicle_imu.msg vehicle_land_detected.msg vehicle_local_position.msg vehicle_local_position_setpoint.msg vehicle_magnetometer.msg vehicle_odometry.msg vehicle_rates_setpoint.msg vehicle_roi.msg vehicle_status.msg vehicle_status_flags.msg vehicle_trajectory_bezier.msg vehicle_trajectory_waypoint.msg vtol_vehicle_status.msg wheel_encoders.msg wind_estimate.msg yaw_estimator_status.msg -i /home/tony/PX4_Firmware/msg -o /home/tony/PX4_Firmware/build/px4_sitl_default/uORB/topics -e templates/uorb -t /home/tony/PX4_Firmware/build/px4_sitl_default/msg/tmp/headers -q
Failed to import em: No module named 'em'You may need to install it using:
pip3 install --user empy[6/740] Generating git version header
ninja: build stopped: subcommand failed.
Makefile:198: recipe for target 'px4_sitl_default' failed
make: * [px4_sitl_default] Error 1
I think the means is told me : empy isn't installed.
and I use : pip3 install --user toml or: pip install -user toml
and try again: make px4_sitl_default gazebo
same errors still exist.
who can tell me how to solve it ?
thank you
I have got the same error when
make posix_sitl_default gazebo
I solved it by modifying the PYTHONPATH and solve it:
export PYTHONPATH=/usr/bin/python
Hope it helps!
hi, I env found : PYTHONPATH is : PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
and how to change ?
thank you
I have got the same error when
make posix_sitl_default gazebo
I solved it by modifying the PYTHONPATH and solve it:
export PYTHONPATH=/usr/bin/python
Hope it helps!hi, I env found : PYTHONPATH is :
PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
and how to change ?
thank you
maybe
export PYTHONPATH=/usr/bin/python
if you want to keep the ROS path,you can try this one:
export PYTHONPATH=/usr/bin/python:/opt/ros/kinetic/lib/python2.7/dist-packages
I have got the same error when
make posix_sitl_default gazebo
I solved it by modifying the PYTHONPATH and solve it:
export PYTHONPATH=/usr/bin/python
Hope it helps!hi, I env found : PYTHONPATH is :
PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
and how to change ?
thank you
mabe
export PYTHONPATH=/usr/bin/python
if you want to keep the ROS path,you can try this one:
export PYTHONPATH=/usr/bin/python:/opt/ros/kinetic/lib/python2.7/dist-packages
I open a shell, and "export PYTHONPATH=/usr/bin/python:/opt/ros/kinetic/lib/python2.7/dist-packages"
and don't close the shell, continue :make px4_sitl_default gazebo
and same errors...........
please tell me , please...
I have got the same error when
make posix_sitl_default gazebo
I solved it by modifying the PYTHONPATH and solve it:
export PYTHONPATH=/usr/bin/python
Hope it helps!hi, I env found : PYTHONPATH is :
PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
and how to change ?
thank you
mabe
export PYTHONPATH=/usr/bin/python
if you want to keep the ROS path,you can try this one:
export PYTHONPATH=/usr/bin/python:/opt/ros/kinetic/lib/python2.7/dist-packagesI open a shell, and "export PYTHONPATH=/usr/bin/python:/opt/ros/kinetic/lib/python2.7/dist-packages"
and don't close the shell, continue :make px4_sitl_default gazebo
and same errors...........
please tell me , please...
You may try this.
Inquire the pythonPath Result, and set PYTHONPATH accurately.
pip3 --version
My Result:
pip 19.3.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
Then set PYTHONPATH as this
export PYTHONPATH=/usr/local/lib/python3.5/dist-packages:${PYTHONPATH}
Then pip install packages for "No module named" should work!
@jlm345
You may try this.
Inquire the pythonPath Result, and set PYTHONPATH accurately.
pip3 --version
My Result:
pip 19.3.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
Then set PYTHONPATH as this
export PYTHONPATH=/usr/local/lib/python3.5/dist-packages:${PYTHONPATH}
Then pip install packages for "No module named" should work!
hi, i use :
pip3 --version
My result: pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)
and i open a shell, set : export PYTHONPATH=/usr/lib/python3/dist-packages:${PYTHONPATH}
and i continue, don't close this shell,
make px4_sitl_default gazebo
and same errors:
Failed to import em: No module named 'em'
You may need to install it using:
pip3 install --user empy
and i use: pip3 install --user empy
and errors:
Exception:
Traceback (most recent call last):
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 555, in urlopen
self._prepare_proxy(conn)
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 753, in _prepare_proxy
conn.connect()
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connection.py", line 252, in connect
ssl_version=resolved_ssl_version)
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 305, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/lib/python3.5/ssl.py", line 377, in wrap_socket
_context=self)
File "/usr/lib/python3.5/ssl.py", line 752, in __init__
self.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 988, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:629: The handshake operation timed outDuring handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 328, in run
wb.build(autobuilding=True)
File "/usr/lib/python3/dist-packages/pip/wheel.py", line 748, in build
self.requirement_set.prepare_files(self.finder)
File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 360, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 577, in _prepare_file
session=self.session, hashes=hashes)
File "/usr/lib/python3/dist-packages/pip/download.py", line 810, in unpack_url
hashes=hashes
File "/usr/lib/python3/dist-packages/pip/download.py", line 649, in unpack_http_url
hashes)
File "/usr/lib/python3/dist-packages/pip/download.py", line 842, in _download_http_url
stream=True,
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 480, in get
return self.request('GET', url, *kwargs)
File "/usr/lib/python3/dist-packages/pip/download.py", line 378, in request
return super(PipSession, self).request(method, url, *args, *kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 468, in request
resp = self.send(prep, *send_kwargs)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/sessions.py", line 576, in send
r = adapter.send(request, *kwargs)
File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 46, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/adapters.py", line 376, in send
timeout=timeout
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 228, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
You are using pip version 8.1.1, however version 20.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
and i found, my system have installed python3 and python2. i open shell, use :
python
import toml
it right
but when i try:
python3
import toml
it errors:No module named 'toml'
i think this errors results in px4's errors.
but i can't know how to solve.
Ok, and you have done?
pip3 install --user toml
If not, please paste the output of:
which python
which python3
which pip
which pip3
python --version
python3 --version
pip --version
pip3 --version
Most helpful comment
I have a new way to solve the problem.
First, git clone https://github.com/uiri/toml.git
Second, cd toml
Third, python setup.py install