1. kitti2bag的安裝
使用pip install pandas默認安裝的是最新版的pandas,因為pandas版本0.24.0以后的版本不再支持python2.7,因此指定pandas0.23.0及以前的版本即可。
sudo pip install pandas==0.23.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
sudo pip install pykitti -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
sudo pip install kitti2bag -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
安裝之后發現事情遠不止這么簡單
2. 運行的問題
運行指令:
kitti2bag -t 2011_09_26 -r 0001 raw_synced
在說問題之前首先echo $PYTHONPATH
看一下目前的python路徑,這很重要,很可能你之前陪環境的時候把python的路徑改了。
問題一:
找不到pykitti
對於這個問題,可以開一個python然后Import pykitti,然后就又會誕生許多新問題:
(1)“ImportError: No module named xxx”
(2)“ImportError: xxx is the minimum required version”
這種時候一般就去用下方指令安裝或者在安裝包后方加上==版本號來指定版本之類的。
sudo pip install --target=/usr/local/lib/python2.7/site-packages catkin-tools -i http://pypi.douban.com/simple --trusted-host pypi.douban.com --default-timeout=100000
(Requirement already satisfied解決辦法:pip install 工具包到指定目錄)
(網絡源的問題:-i http://pypi.douban.com/simple --trusted-host pypi.douban.com)
(超時的問題:--default-timeout=100000)
(其實最好不要用sudo安裝)
如果是ros相關的東西找不到,用下方指令安裝。
sudo apt-get install ros-kinetic-xx
(說下題外話,python的site-packages和dist-packages的區別)
1、系統自帶python
系統自帶軟件管理器安裝, 模塊將被安裝到 dist-packages
/usr/lib/python2.7/dist-packages/
從 easy_install 和 pip (注: 是python的軟件管理其,python有許許多多的軟件) 使用,他們也使用 dist-packages,但是路徑是:
/usr/local/lib/python2.7/dist-packages/
2、自己安裝或者升級過后的python
python安裝第三方庫的路徑是:
/usr/lib/python2.7/site-packages/
從 easy_install 和 pip 安裝的第三方庫安裝路徑是:
/usr/local/lib/python2.7/site-packages/
3、非root用戶,從 easy_install 和 pip安裝第三方庫的安裝路徑是
~/.local/lib/python2.7/site-packages
有時候需要檢查第三方庫的路徑是否在(筆者在這里碰見過一個坑,正常路徑下又某個庫,但是import找不到,只能指向這里的對應的庫)
~/.local/lib/python2.7/site-packages/external/protobuf/python
除了上面兩種問題還有可能遇到“AttributeError: 'module' object has no attribute 'utils'”
這個問題就很難說了,再回去重新運行kitti2bag指令,看提示啥錯誤。
實際上,用pip安裝時還會出現多種多樣亂七八糟的錯誤,
比如pip指令出現SyntaxError: invalid syntax
>>> pip install numpy File "<stdin>", line 1 pip install numpy ^ SyntaxError: invalid syntax
Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==21.0.1', 'console_scripts', 'pip')() File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point return ep.load() File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load entry = __import__(self.module_name, globals(),globals(), ['__name__']) File "/usr/lib/python2.7/site-packages/pip/_internal/cli/main.py", line 60 sys.stderr.write(f"ERROR: {exc}") ^ SyntaxError: invalid syntax
wget https://bootstrap.pypa.io/3.5/get-pip.py
https://bootstrap.pypa.io/pip/3.5/get-pip.py(可能會提示用這個代替)
python3 get-pip.py