Linux Letter Logo

ここを参考にUbuntu 16.04上でTinyOSのシミュレータ「TOSSIM「のコンパイルしているとPython.hに関するエラーが起きました。

 

 

致命的エラー: Python.h: そのようなファイルやディレクトリはありません
fatal error: Python.h: No such file or directory compilation terminated.

ここを参考にpythonのパッケージを導入します。

# Python 2.x系
sudo apt-get install python-dev
# Python 3.x系
sudo apt-get install python3-dev

Python2.x系と3.x系が選択できるらしい。

今回は古い記事を参考に作業をしていたので2.x系をインストール。

 

しかし、python-devパッケージを導入後も同様のコマンドを実行すると同じエラー文が表示されました。

hiyoshi@hiyoshi-VirtualBox:~/Documents/tinyos-main/apps/Blink$ make micaz simmkdir -p simbuild/micaz
make: python2.72-config: Command not found
make: python2.72-config: Command not found
make: python2.72-config: Command not found
  placing object files in simbuild/micaz
  writing XML schema to app.xml
  compiling BlinkAppC to object file sim.o
ncc -c -shared -fPIC -o simbuild/micaz/sim.o -g -O0 -tossim -fnesc-nido-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -fnesc-gcc=gcc -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=simbuild/micaz/app.c -board=micasb -DDEFINED_TOS_AM_GROUP=0x22 --param max-inline-insns-single=100000 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0141L -DIDENT_UIDHASH=0x5426d973L -Wno-nesc-data-race BlinkAppC.nc   -fnesc-dump=components -fnesc-dump=variables -fnesc-dump=constants -fnesc-dump=typedefs -fnesc-dump=interfacedefs -fnesc-dump=tags -fnesc-dumpfile=app.xml
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/sim_noise.c: In function ‘sim_noise_gen’:
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/sim_noise.c:291:7: warning: variable ‘noiseIndex’ set but not used [-Wunused-but-set-variable]
   int noiseIndex = 0;
       ^
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/SimMoteP.nc: At top level:
/home/hiyoshi/Documents/tinyos-main/tos/chips/atm128/sim/atm128hardware.h:101:3: warning: ‘__nesc_disable_interrupt’ is static but used in inline function ‘__nesc_atomic_start’ which is not static
     __nesc_disable_interrupt();
   ^
  compiling Python support and C libraries into pytossim.o, tossim.o, and c-support.o
g++ -c  -shared -fPIC -o simbuild/micaz/pytossim.o -g -O0 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0141L -DIDENT_UIDHASH=0x5426d973L /home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim_wrap.cxx -I/include/python2.72 -I/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim -DHAVE_CONFIG_H 
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim_wrap.cxx:139:20: fatal error: Python.h: No such file or directory
compilation terminated.
/home/hiyoshi/Documents/tinyos-main/support/make/sim.extra:66: recipe for target 'sim-exe' failed
make: *** [sim-exe] Error 1

sudo apt-get install python-devをもう一度実行してpython-devがインストール済みなことを確認。

TOSSIMはC++を利用しているようなので、gccの環境変数”CPATH”にpython.hがあるディレクトリを追加します。

$ sudo vi ~/.bashrc
export CPATH=:/usr/include/python2.7/

 

TOSSIM supports two programming interfaces: Python and C++.

環境変数CPATHに追記後、もう一度TOSSIMのコンパイルコマンドを実行すると解決しました。

hiyoshi@hiyoshi-VirtualBox:~/Documents/tinyos-main/apps/Blink$ make micaz simmkdir -p simbuild/micaz
make: python2.72-config: Command not found
make: python2.72-config: Command not found
make: python2.72-config: Command not found
  placing object files in simbuild/micaz
  writing XML schema to app.xml
  compiling BlinkAppC to object file sim.o
ncc -c -shared -fPIC -o simbuild/micaz/sim.o -g -O0 -tossim -fnesc-nido-tosnodes=1000 -fnesc-simulate -fnesc-nido-motenumber=sim_node\(\) -fnesc-gcc=gcc -Wall -Wshadow -Wnesc-all -target=micaz -fnesc-cfile=simbuild/micaz/app.c -board=micasb -DDEFINED_TOS_AM_GROUP=0x22 --param max-inline-insns-single=100000 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0442L -DIDENT_UIDHASH=0x1b109e79L -Wno-nesc-data-race BlinkAppC.nc   -fnesc-dump=components -fnesc-dump=variables -fnesc-dump=constants -fnesc-dump=typedefs -fnesc-dump=interfacedefs -fnesc-dump=tags -fnesc-dumpfile=app.xml
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/sim_noise.c: In function ‘sim_noise_gen’:
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/sim_noise.c:291:7: warning: variable ‘noiseIndex’ set but not used [-Wunused-but-set-variable]
   int noiseIndex = 0;
       ^
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/SimMoteP.nc: At top level:
/home/hiyoshi/Documents/tinyos-main/tos/chips/atm128/sim/atm128hardware.h:101:3: warning: ‘__nesc_disable_interrupt’ is static but used in inline function ‘__nesc_atomic_start’ which is not static
     __nesc_disable_interrupt();
   ^
  compiling Python support and C libraries into pytossim.o, tossim.o, and c-support.o
g++ -c  -shared -fPIC -o simbuild/micaz/pytossim.o -g -O0 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0442L -DIDENT_UIDHASH=0x1b109e79L /home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim_wrap.cxx -I/include/python2.72 -I/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim -DHAVE_CONFIG_H 
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim_wrap.cxx: In function ‘void SWIG_Python_AddErrorMsg(const char*)’:
/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim_wrap.cxx:880:42: warning: format not a string literal and no format arguments [-Wformat-security]
     PyErr_Format(PyExc_RuntimeError, mesg);
                                          ^
g++ -c  -shared -fPIC -o simbuild/micaz/tossim.o -g -O0 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0442L -DIDENT_UIDHASH=0x1b109e79L /home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/tossim.c -I/include/python2.72 -I/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim
g++ -c  -shared -fPIC -o simbuild/micaz/c-support.o -g -O0 -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"hiyoshi\" -DIDENT_HOSTNAME=\"hiyoshi-Virtual\" -DIDENT_USERHASH=0xaed9548cL -DIDENT_TIMESTAMP=0x59ba0442L -DIDENT_UIDHASH=0x1b109e79L /home/hiyoshi/Documents/tinyos-main/tos/lib/tossim/hashtable.c -I/include/python2.72 -I/home/hiyoshi/Documents/tinyos-main/tos/lib/tossim
  linking into shared object ./_TOSSIMmodule.so
g++ -shared -fPIC  simbuild/micaz/pytossim.o simbuild/micaz/sim.o simbuild/micaz/tossim.o simbuild/micaz/c-support.o -lstdc++  -o _TOSSIMmodule.so
  copying Python script interface TOSSIM.py from lib/tossim to local directory
 
*** Successfully built micaz TOSSIM library. 

 

 

致命的エラー: Python.h: そのようなファイルやディレクトリはありません
Tagged on:         

コメントを残す