zoukankan      html  css  js  c++  java
  • Mac OS X 10.11.1下搭建Python3.4 + PyQt5.5.1 +Eric6.1.1开发平台

    由于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没有安装成功


    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。




    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    openGL线s的绘制
    openGL绘制正方形
    openGL的使用步骤
    [归并排序][逆序数]Brainman
    [动态规划]Tak and Cards
    [STL][stack]简单计算器
    [题解]2018湘潭邀请赛
    [数论][组合数学]Iroha and a Grid
    [STL][stack]括号配对问题
    [简单思维题]Sequence(山东省第九届ACM大学生程序设计竞赛E题)
  • 原文地址:https://www.cnblogs.com/kallan/p/5147820.html
Copyright © 2011-2022 走看看