1. 程式人生 > >MAC OS 10.13.4 下paddlepaddle+Anaconda+Pycharm安裝與使用

MAC OS 10.13.4 下paddlepaddle+Anaconda+Pycharm安裝與使用

20180719注:paddlepaddle官方文件宣告MacOS現在已經不再支援pip安裝。謹慎觀看,歡迎評論探討。

用一天多的時間完成了 MAC 下的 paddlepaddle+Anaconda+Pycharm 安裝與使用,記錄步驟如下。

1.  在anaconda的Environments中建立一個環境pp27

    在anaconda已經完成安裝的情況下,開啟anaconda:在下部有一個+號Creat,輸入環境名稱“pp27”(可以換成你喜歡的其他名字)注意,一定要選擇python 2.7版本(因為paddlepaddle現在只支援2.7)!   

    當然,在終端Terminal中使用conda create方式建立也是一樣的,要指明python版本。

2.  安裝依賴檔案

    通過在右上角搜尋,點選apply安裝:

            gcc         4.8.5

            cmake     3.9.4

            swig        3.0.12

            注1:看了一些其他的參考,go 版本>=1.8可以選擇性安裝(不安裝也可以),如果安裝通過Terminal的apt。

            注2:pip,numpy也要有,一般都有;注意更新pip,版本要大於>=9.0.

            注3:gcc,cmake 和 swig 版本也可以高於上述版本。

3.  安裝paddlepaddle

    開啟Terminal,通過輸入 source activate pp27 進入剛才搭建的 python 2.7 的環境。

source activate pp27 

    如果在新開始的一行前面顯示(pp27)說明進入了該環境。pip安裝paddlepaddle:

pip install paddlepaddle

    一般可以安裝(反正我是成功了-。-)。

4.  paddlepaddle 和 anaconda 的相容問題

    4.1 不關聯:顯示報錯

    安裝好了paddlepaddle後,很激動很不冷靜很膨脹,開啟Pycharm -> preferences -> Project -> Project interpreter,找到pp27環境下的python 2.7編譯器。新增方法不再贅述,一般在/anaconda3/envs/pp27/lib/python2.7 下可以找到。

    找了一個paddlepaddle的工程試一下,在官網上找到一個房價模型:1下載資料+2複製程式碼。

    注意資料放在Pycharm工程的同一個檔案下。

    執行後顯示報錯:

Fatal Python error: PyThreadState_Get: no current thread

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

    4.2 報錯原因    

    查找了一些資料:MAC自帶 python 2.7,paddlepaddle 安裝後預設使用的是這一個。通過在 Terminal 通過 otool 查詢 _swig_paddle.so 依賴的檔案路徑可以看出(可以先在本機搜尋一下 _swig_paddle.so 所在的路徑再用 otool -L):

 otool -L /anaconda3/envs/pp27/lib/python2.7/site-packages/py_paddle/_swig_paddle.so 

    

    綠線標識部分說明用的是本機自帶 python 2.7,但是以來的環境都在 anaconda 的 pp27 裡面,所以要把第三行替換掉,換成anaconda的pp27對應的 python 2.7。

    4.3 關聯 

    也就是替換。在 Terminal 輸入:

install_name_tool -change /usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/Python  /anaconda3/envs/pp27/lib/libpython2.7.dylib /anaconda3/envs/pp27/lib/python2.7/site-packages/py_paddle/_swig_paddle.so

    也就是install_name_tool -change _swig_paddle.so檔案中的第三行  anaconda3下的libpython2.7.dylibl絕對路徑 _swig_paddle.so絕對路徑

    上述後面兩個路徑可以在本機搜尋一下檔名稱,就可以看到了。

    再次檢視:

 otool -L /anaconda3/envs/pp27/lib/python2.7/site-packages/py_paddle/_swig_paddle.so 

    綠線標識部分說明替換成功。

5.  在 Pycharm 中測試 paddlepaddle 工程

    可以顯示預測。

    如有問題,歡迎批評指正。