Mac OS X 10.11.1下搭建Python3.4 + PyQt5.5.1 +Eric6.1.1開發平臺

来源:http://www.cnblogs.com/kallan/archive/2016/01/21/5147820.html
-Advertisement-
Play Games

由於Python易學、開源、面向對象、可移植性高、庫豐富的特點,近期開始學習Python。百度瞭解了各款Python IDE後,還是認為Eric比較適合我,所以踏上了安裝Eric坎坷之路,從選定工具到安裝成功一共花費了8天時間,從Windows到Linux再到Mac,挨個折騰了一遍,Windows的...


由於Python易學、開源、面向對象、可移植性高、庫豐富的特點,近期開始學習Python。百度瞭解了各款Python IDE後,還是認為Eric比較適合我,所以踏上了安裝Eric坎坷之路,從選定工具到安裝成功一共花費了8天時間,從Windows到Linux再到Mac,挨個折騰了一遍,Windows的搭建比較簡單,下載好相應版本直接運行exe就行了,Linux和Mac下我都是用源碼包安裝的,所以遇到了不少問題最後,終於在Mac上研究明白了。把搭建的整個過程寫下來,和與我一樣的小白分享。

PS:Mac與Linux的搭建沒什麼區別,Linux下的也可參考本文,由於我安裝過xcode所以gcc我沒有再單獨去安裝,沒有的請根據提示自行安裝。

一、準備文件

  1. Python3.4
  2. Qt5.5.1
  3. SIP4.17
  4. QScintilla2.9.1
  5. PyQt5.5.1

二、安裝過程

1.安裝Python3.4

            從官網(https://www.python.org/download)下載相應平臺的版本安裝即可

        註意!!

 

  • 如果您是iOS開發者,請不要刪除python2.7,因為Xcode使用的2.7的腳本,不支持3以上版本!!!
2.安裝Qt5.5.1

            從官網(http://qt-project.org/downloads)下載相應平臺的版本安裝即可,路徑設成預設(/Users/*/Qt5.5.1)即可

            安裝完成需要將Qt5添加到環境變數~/.bash_profile           

    

1 vim ~/.bash_profile

 

 

    將下麵兩行添加進去

1 PATH="/Users/*/Qt5.5.1/5.5/clang_64/bin:${PATH}"
2 export PATH

 

3.安裝SIP4.14

            下載地址:http://www.riverbankcomputing.com/software/sip/download            

1 tar -zxvf sip-4.17.tar.gz  
2 cd sip-4.17
3 python3 configure.py  
4 make  && date # 加&&date是個人習慣,make成功會顯示時間
5 sudo make install  && date # 一定要加sudo

 

4.安裝QScintilla/Qt4Qt5
      下載地址:http://www.riverbankcomputing.com/software/qscintilla/download

             QScintilla2 文件中有3個文件夾的內容要分別安裝:Qt4Qt5,designer-Qt4Qt5和Python。

             Qt4Qt5文件夾要在PyQt之前安裝,designer-Qt4Qt5和Python要在PyQt之後安裝,順序一定要註意!!

1 cd ./QScintilla-gpl-2.9.1/Qt4Qt5
2 qmake qscintilla.pro
3 make && date
4 sudo make install && date

 

5.安裝PyQt5.5.1

            下載地址:https://www.riverbankcomputing.com/software/pyqt/download5

            由於是安裝在Python的site-packages里,所以要首先確定包的位置

1 python3
2 Python3.4.4(v3.4.4:737efcadf5a6,Dec192015,20:38:52)
3 [GCC 4.2.1(AppleInc. build 5666)(dot 3)] on darwin
4 Type"help","copyright","credits" or "license"for more information.
5 >>> import site
6 >>> site.getsitepackages()
7 ['/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages','/Library/Frameworks/Python.framework/Versions/3.4/lib/site-python','/Library/Python/3.4/site-packages']

 

          知道了位置開始編譯

 

1 cd PyQt-gpl-5.5.1
2 $python3 configure.py -q /Users/**/Qt5.5.1/5.5/clang_64/bin/qmake -d /Library/Python/3.4/site-packages/ #-q 後面的是qmake的位置,-d 後面是Python包的位置
3 make && date

 

 

 

註意!!

我在執行make的時候出了一個這樣的錯誤

1 /Users/Kallan/Documents/Python開發/PyQt-gpl-5.5.1/sip/QtPositioning/qgeolocation.sip:28:10: fatal error:
2          'qgeolocation.h' file not found
3     #include <qgeolocation.h>
4             ^
5     1 error generated.
6 make[1]:***[sipQtPositioningcmodule.o]Error1
7 make:***[sub-QtPositioning-make_first-ordered]Error2

 

解決方法:

/PyQt-gpl-5.5.1/QtPositioning文件夾下創建一個頭文件qgeolocation.h,把下麵的內容複製進去

 1     /****************************************************************************
 2     **
 3     **Copyright(C)2015TheQtCompanyLtd.
 4     **Contact: http://www.qt.io/licensing/
 5     **
 6     **This file is part of the QtPositioning module of the QtToolkit.
 7     **
 8     ** $QT_BEGIN_LICENSE:LGPL21$
 9     **CommercialLicenseUsage
10     **Licensees holding valid commercial Qt licenses may use this file in
11     ** accordance with the commercial license agreement provided with the
12     **Softwareor, alternatively,in accordance with the terms contained in
13     ** a written agreement between you andTheQtCompany.For licensing terms
14     **and conditions see http://www.qt.io/terms-conditions.For further
15     ** information use the contact form at http://www.qt.io/contact-us.
16     **
17     ** GNU LesserGeneralPublicLicenseUsage
18     **Alternatively, this file may be used under the terms of the GNU Lesser
19     **GeneralPublicLicense version 2.1or version 3as published by the Free
20     **SoftwareFoundationand appearing in the file LICENSE.LGPLv21and
21     ** LICENSE.LGPLv3 included in the packaging of this file.Please review the
22     ** following information to ensure the GNU LesserGeneralPublicLicense
23     ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24     ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25     **
26     **As a special exception,TheQtCompany gives you certain additional
27     ** rights.These rights are described inTheQtCompany LGPL Exception
28     ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29     **
30     ** $QT_END_LICENSE$
31     **
32     ****************************************************************************/
33     #ifndef QGEOLOCATION_H
34     #define QGEOLOCATION_H
35     #include <QtCore/QSharedDataPointer>
36     #include <QtCore/QMetaType>
37     #include <QtPositioning/qpositioningglobal.h>
38     QT_BEGIN_NAMESPACE
39     classQGeoAddress;
40     classQGeoCoordinate;
41     classQGeoRectangle;
42     classQGeoLocationPrivate;
43     class Q_POSITIONING_EXPORT QGeoLocation
44     {
45     public:
46        QGeoLocation();
47        QGeoLocation(const QGeoLocation&other);
48        ~QGeoLocation();
49        QGeoLocation&operator=(const QGeoLocation&other);
50        bool operator==(const QGeoLocation&other) const;
51        bool operator!=(const QGeoLocation&other) const {
52            return!(other ==*this);
53        }
54        QGeoAddress address() const;
55        void setAddress(const QGeoAddress&address);
56        QGeoCoordinate coordinate() const;
57        void setCoordinate(const QGeoCoordinate&position);
58        QGeoRectangle boundingBox() const;
59        void setBoundingBox(const QGeoRectangle&box);
60        bool isEmpty() const;
61     private:
62        QSharedDataPointer<QGeoLocationPrivate> d;
63     };
64     Q_DECLARE_TYPEINFO(QGeoLocation, Q_MOVABLE_TYPE);
65     QT_END_NAMESPACE
66     Q_DECLARE_METATYPE(QGeoLocation)
67     #endif

 

繼續!

1 make && date
2 sudo make install && date

 

6.安裝QScintilla/Python
1 cd /QScintilla-gpl-2.9.1/Python
2 python3 configure.py --pyqt=PyQt5-d /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5--pyqt-sipdir=/Library/Frameworks/Python.framework/Versions/3.4/share/sip/PyQt5-v /Library/Frameworks/Python.framework/Versions/3.4/share/sip/PyQt5
3 make && date
4 sudo make install && date

 

如果在Python里import不會報錯,即代表安裝成功,可繼續往下進行

1 python3
2 Python3.4.4(v3.4.4:737efcadf5a6,Dec192015,20:38:52)
3 [GCC 4.2.1(AppleInc. build 5666)(dot 3)] on darwin
4 Type"help","copyright","credits" or "license"for more information.
5 >>> import PyQt5.Qsci
6 >>> exit()

 

7.安裝QScintilla/designer-Qt4Qt5        
1 cd /QScintilla-gpl-2.9.1/designer-Qt4Qt5
2 qmake designer.pro
3 make && date
4 sudo make install && date

 

8.安裝Eric6

下載地址:http://sourceforge.net/projects/eric-ide/files/eric6/stable/

下載其中的eric6-6.1.1.tar主文件和eric6-i18n-zh_CN.GB2312-6.1.1.tar中文語言包。

將兩個文件提取出來,將中文語音包的eric複製到主文件內合併

1 cd eric6-6.1.1
2 sudo python3 install.py 

 

配置Eric6

1、選擇Eric6-> preference -> Editor -> Autocompation。勾選所有選框;

2.Editor -> QScintilla 。勾上左右的兩個選框,然後在下麵source中,選擇from Document and API files;

3.Editor -> APIs。勾選Complie APIs Autocompation,在Language中,選擇python3。點面下麵的Add from installed APIs按鈕,選擇住需要的.api文件。最後點擊Compile APIs;

4、Interface -> Interface。Language選擇中文,重啟生效。

大功告成!

三、曾經遇到的問題

1.安裝QScintilla designer-Qt4Qt5時報錯!

 

1 root@kallan:/media/kallan/D盤/編程學習/python/QScintilla-gpl-2.9.1/designer-Qt4Qt5# qmake -qt5 designer.pro Project ERROR: Unknown module(s) in QT: designer

 

 

 

原因: Qt沒有安裝好

2.安裝QScintilla Python時報錯!
1 python3 configure.py --pyqt=PyQt5-d /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5--pyqt-sipdir=/Library/Frameworks/Python.framework/Versions/3.4/share/sip/PyQt5--qsci-sipdir=/Library/Frameworks/Python.framework/Versions/3.4/share/sip/PyQt5
2 Error:Make sure you have a working sip on your PATH or use the --sip argument
3 to explicitly specify a working sip.

 

原因:沒有安裝SIP

3.安裝QScintilla Python時報錯!
 1 python3 configure.py --pyqt=PyQt5
 2 ConfiguringQScintilla2.9.1...
 3 QScintilla2.9.1 is being used.
 4 TheQScintilla.sip files will be installed in/usr/share/sip/PyQt5.
 5 TheQScintilla module will be installed in
 6 /usr/lib/python3/dist-packages/PyQt5.
 7 PyQt5.3.1 is being used.
 8 Qt5.3.1 is being used.
 9 sip 4.16.2 is being used.
10 The sip executable is /usr/bin/sip.
11 TheQScintilla module is being built with 'protected' redefined as 'public'.
12 TheQScintilla API file will be installed in/usr/share/qt5/qsci/api/python.
13 Generating the C++ source for the Qsci module...
14 Error:Unable to create the C++ code.

 

原因:安裝順序錯誤——先安裝的PyQt5,而後安裝的QScintilla Qt4Qt5

4.QScintilla的Python安裝完成但是在Python中import時報錯!
1 >>> import PyQt5.Qsci
2 Traceback(most recent call last):
3 File"<stdin>", line 1,in<module>
4 ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5/Qsci.so,2):Library not loaded:@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport
5 Referenced from:/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5/Qsci.so
6 Reason: image not found

 

5.安裝Eric報錯!
1 python3 install.py
2 Checking dependencies
3 PythonVersion:3.4.4
4 FoundPyQt5
5 Sorry, please install QScintilla2 and
6 its PyQt5/PyQt4 wrapper.
7 Error: dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5/Qsci.so,2):Library not loaded:@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport
8 Referenced from:/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyQt5/Qsci.so
9 Reason: image not found

 

4和5問題的原因是一樣的,QScintilla的Python沒有安裝成功


 




來自為知筆記(Wiz)




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 版權聲明:本內容為原創內容,轉載請聲明出處。原文地址:http://www.excelib.com/article/287/showfirewalld簡介Centos7中預設將原來的防火牆iptables升級為了firewalld,firewalld跟iptables比起來至少有兩大好處:1、fir...
  • nginx中可以將lua嵌,讓nginx執行lua腳本,可以處理高併發,非阻塞的處理各種請求,openresty項目中可以使用nignx可以直接構建 srcache_nginx+redis緩存,而不用通過動態語言來處理(QPS可以輕鬆的提高了)看一下openresty中srcache-nginx-m...
  • Opps, my computer system was broken again... Let's repire it.IntroductionThe system of my PC is broken. I could enter the UEFI setting. So that means ...
  • A few days ago, I have tried to write bare medal program but failed. Now I find that the main mistake is that I have mistake the address of GPIO of BC...
  • 所謂的處理器就是電腦的核心運算硬體,現在使用windows操作系統的用戶使用的機器之中的處理器多數都是X86內核,而實際之上很多時候我們用戶都是會在心目之中把一個處理器和其運行的特定操作系統掛鉤,之前說的X86和windows操作系統,而在Cortex-A系列硬體之上我們運行的多數都是Androi...
  • 1,使用工具概述 FT232Rl晶元+sscom32+示波器 2,接收數據分析 sscom32發送數據:0xaa[1010 1010] 波特率為:4800bps @5V系統 示波器測試FT232RL 發送引腳 Txd,得到數據如上圖所示。 從上圖中可以得到如下幾點結論: 1.Txd空閑為高電平。 2...
  • 1.修改主機名及hosts文件10.205.22.185 nn1 (主)作用namenode,resourcemanager,datanode,zk,hive,sqoop10.205.22.186 nn2 (備)作用namenode,resourcemanager,datanode,zk10.205...
  • BBB 的板上有五個 LED 燈,一個電源,四個其他指示燈,usr0 至 usr3 。這次學習是控制 usr0 至 3 讓它們亮著,熄滅,閃。算是個 Hello World 實驗。非常簡單。 需要的材料: BBB 一臺 購買BBB 自帶的數據線一條 手提電腦或台式電腦,有 USB 插頭的 首先用數據...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...