跳到主要內容

Jetson Nano 安裝Tensorflow 會踩到的坑 ImportError: cannot import name 'main'

Jetson Nano 買來一定會安裝Tensorflow, 就一定會踩到坑,
以下帶你減少採坑
安裝一些套件
  • $ sudo apt-get install libhdf5-serial-dev hdf5-tools
安裝pip3
  • $ sudo apt-get install python3-pip
安裝更多的套件
  • $ pip3 install -U pip 
  • $ sudo apt-get install zlib1g-dev zip libjpeg8-dev libhdf5-dev
  • $ sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker grpcio six mock requests gast h5py astor termcolor 
  • Traceback (most recent call last):
  •   File "/usr/bin/pip3", line 9, in <module>
  •     from pip import main
  • ImportError: cannot import name 'main'
通常安裝到這裡就會出現一個錯誤,這是一個PIP CODE的BUG 所以要改CODE,透過Nano文字編輯器來修改。
這時候如果你還沒有裝NANO,請裝NANO爛梗再來一次jetson nano沒有裝nano所以裝nano
  • sudo apt-get update
  • sudo apt-get install nano   
使用nano 來修改/usr/bin/pip3 這個文件
  • sudo nano /usr/bin/pip3                                                                                     
把原本的內容全部幹掉。然後改成下面的,或是只改紅色的地方也可以
#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())





     Ctrl + X 離開,按Y存檔            



重新執行就可以安裝一堆套件,這裡將會花上好幾分鐘,建議先行離開可以減少焦慮感。
  • $ sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker grpcio six mock requests gast h5py astor termcolor     
接著才是真的要安裝Tensorflow
 一行搞定
  • $ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu

測試一下,執行如下指令,使用python3 因入Tensorflow,然後列出版本

  • python3 -c 'import tensorflow as tf; print(tf.__version__)'
大概等待十秒,會得到1.13.1 代表安裝完成了
凌老師教學




留言

這個網誌中的熱門文章

使用藍牙BLE 讓iphone android 連接樹莓派3 raspberry pi 3

        Raspberry PI 3 終於內建藍牙與網路晶片 這個晶片有點強大,可以 同時 讓Wifi 與 BLE 和 SPP (RF Com) 同時繁忙通訊都沒有問題。        Raspberry PI 如果是當成藍牙Client 連結身邊的BLE裝置,例如ibeancon、智慧手環、智慧手錶,那只要使用簡單hcitool搭配hciconfig 指令就可以達到將資料要回來,在網路關鍵字一下就可以找到如何使用hcitool 連線並要得資料。      手機要與 Raspberry PI連線的方法可以透過,wifi 或是藍牙,但是操作上使用藍牙比較直覺與簡易。但是要讓手機連線 Raspberry PI, Raspberry PI上就需要將藍牙裝置當成Server,這件事情就需要一些程式碼上的撰寫。     現在的文件說到關於如何將 Raspberry PI藍牙裝置當成Server的文章並不太多,開發上總感覺困難重重,我也是在這裡停滯了好多天,不斷的搜尋解決方法,因為通起來了,資料來自網路所以也回饋給網路,讓下一個使用者減少這類問題的負擔。 不過目前這個方法未來開發資源越來越齊備可能不敷使用,但至少現在是可用的備案。     網路上搜尋之後,整體套件如下 藍牙硬體<== BlueZ <== Nodejs(Bleno) <== Node Ble <==  Node  Socket  <==你的程式 我們發現藍牙要動起來通常會倚賴BlueZ的套件,好在的是最新的版作業系統已經將BlueZ提升到5.23,支援BLE了。 所以安裝BlueZ套件這件事情就可以省略。        接著安裝 Node 環境 , http://blog.itist.tw/2016/04/using-raspberry-pi-3-to-build-eddystone-beacons-with-raspbian-jessie.html 於這篇網址提到安裝Node的快速方法,如...

四軸飛行器:飛控板DIY

最近 我有時會問自己為什麼要從Arduino 開始弄非控板,而不去買已經整體弄好的Multiwii 非控板,其實主要是自己組裝出來的樂趣, 學習過程中嘗試透過各種資源與方法解決問題的能力 ,其實MAKER的資源很多,但怎麼應用這些資源裁示值得學習的,凌爸學習東西喜歡直接做,做的過程當中,自然就會了解WHY與HOW,這遠比看書學習的效果高上很多。 零件陸陸續續一包一包來了,發現郵費比零件貴太多~~~~@@,今天先把非控板黏在冰棒棍上,如下 正面   背面 上至下分別是 Arduino Nano,MPU6050(GY521),藍芽模組(4.0),至於固定的方式目前只是用一條雙面膠讓他們黏在上面,因為我還在考慮是否使用藍芽模組4.0還是2.1 ,2.1的好處是ARDUINO的燒錄與調適可以直接透過藍牙,如果是使用4.0就只能飛行與設定,不能燒入Arduino,但是藍牙4.0的優點是iphone 也可以控制,所以目前就先黏上藍牙4.0。 第一步 先讓Arduino 與 GY521通訊起來,這樣的開始就會特別有感覺,由於想要呈現比較高質感的電路圖,發現一套很棒的軟體  http://fritzing.org/home/   fritzing 這一套電路圖軟體居然是OPEN SOURCE的,且畫出來的畫面很棒又簡單,也推薦給妳試試看,其實我蠻害怕畫電路圖的因為PROTEL太龐大了,我又不是本科系的所以電路圖對我來說太恐怖, fritzing玩起來像是玩具一樣,完全消除我心中的恐懼感。真是太感謝了,也學習到快速畫電路圖的技巧。 GY521與ARDUINO的通訊很簡單,透過I2C的連線方式即可,其實我並不太知道I2C是什麼,但是維基百科說( https://zh.wikipedia.org/zh-tw/I%C2%B2C ),他是一種並聯通訊,所以我們ARDUINO上的SCL、SDA,連結到裝置的SCL、SDA之間就可以透過I2C資料傳遞。由圖可以 知道 A5 是SCL A4 是SDA 圖片網址 http://www.pighixxx.com/test/portfolio-items/nano/ 連接圖如下 A5 是SCL A4 是SDA 電源 5V 與接地 然後還...

小四軸飛行器:驅動馬達

等待陀螺儀 的這段時間馬達先來了,所以我們開始測試馬達驅動系統飛行器的馬達是透過 Arduino 發出 PWM 訊號,傳送給驅動器 ( 小型為 MOS FET ,大型為電調 ) 控制馬達的轉速,達到控制飛行器。為了測試我們的驅動電路,我們先寫一個簡單的 PWM 控制,讓 PWM 輸出值越來越大,到大極限的時候,又慢慢地變小,如果我們的驅動電路可以正常運作時我們應該可以聽到馬達的聲音漸漸地變大,然後漸漸地變小。 測試馬達之前我們先學習 Arduino 的 PWM ,學習的過程當中我參考了下面的網站 http://coopermaa2nd.blogspot.tw/2011/07/6-pwm.html http://coopermaa2nd.blogspot.tw/2011/07/61-pwm-modes-part1.html 感謝 Cooper Maa 。       一開始我們先使用一個 LED 正腳接再 PWM Nano 的 D3 ,然後負腳接到 GND ,接著寫讓 PWM 變大變小的程式 然後又找到如下網站 葉難 :Arduino 練習 : 呼吸燈 http://yehnan.blogspot.tw/2012/02/arduino_16.html 使用網站上的程式碼,我們可以看到燈慢慢亮起來,又慢慢的暗下去, 如果看到這樣的結果代表我們的 PWM 範例程是可以動作。 當呼吸燈完成了,代表我們的程式碼是沒有問題的 ( 如果有問題就是電路的問題 ) ,接下來只要把 LED 腳換成馬達控制腳,就可以測試我們的驅動。 查詢了一下 SI2302 ,由下表可以知道為什麼選用這個 IC ,這張表是在某個賣場抓到的 http://taiwan.tmall.com/item/20689248199.htm? 型號 電流 電壓 標示 極性 封裝 2SK3018 100MA 30V KN N 通道 SOT23 ...