5

首先,我通过以下步骤安装 QScintilla:

1:

cd Qt4Qt5
qmake qscintilla.pro
sudo make
make install

2:

cd ../designer-Qt4Qt5
qmake designer.pro
sudo make
sudo make install

3:

cd ../Python
python3 configure.py --pyqt=PyQt5
sudo make

在这里我遇到了问题:

QAbstractScrollArea: No such file or directory 

和问题:

qprinter.h: No such file or directory

但我最终通过手动添加所需文件来解决它们。

继续:

sudo make install

4:

然后我通过键入以下内容来安装 eric6:

sudo python3 install.py

但我得到了:

检查依赖项

Python版本:3.4.0

找到 PyQt5

抱歉,请安装 QScintilla2 及其 PyQt5/PyQt4 包装器。

错误:/usr/lib/python3/dist-packages/PyQt5/Qsci.so:未定义符号:_ZTI13QsciScintilla

4

3 回答 3

3

主要问题是您链接的是 Qt4 而不是 Qt5。这就是为什么QAbstractScrollAreaQPrinter标头被报告为缺失的原因,也是您后来收到undefined symbol错误的原因。

QScintilla 使用一个特性文件来控制编译时配置,它的源代码需要打补丁才能为 Qt5 构建一个好的版本。

因此,首先解压缩一组新的源代码,然后进行这些更改:

设计师-Qt4Qt5/designer.pro

TARGET = qscintillaplugin_qt5

Qt4Qt5/features/qscintilla2.prf

        } else {
            LIBS += -lqscintilla2_qt5
        }
    }
} else {
    LIBS += -lqscintilla2_qt5
}

Qt4Qt5/qscintilla.pro

TARGET = qscintilla2_qt5
...
features.path = $$[QT_INSTALL_ARCHDATA]/mkspecs/features

这将确保您获得 Qt5 的独立 qscintilla 库。

完成后,按照以下步骤构建(作为普通用户):

cd 'path/to/src/Qt4Qt5'

# this is essential for correct linking
export QMAKEFEATURES="$PWD/features"

# make sure you use the right qmake!
qmake-qt5 'qscintilla.pro'
make

# plugin for Qt5 Designer
cd '../designer-Qt4Qt5'
qmake-qt5 'designer.pro' INCLUDEPATH+='../Qt4Qt5' QMAKE_LIBDIR+='../Qt4Qt5'
make

# Python bindings
cd '../Python'
python3 'configure.py' --pyqt='PyQt5' --qmake='/usr/bin/qmake-qt5' \
        --qsci-incdir='../Qt4Qt5' --qsci-libdir='../Qt4Qt5'
make

如果成功,您可以安装所有内容(以 root 身份):

cd 'path/to/src/Qt4Qt5'
make install

cd '../designer-Qt4Qt5'
make install

cd '../Python'
make install
于 2015-06-09T18:17:21.643 回答
0

上面的 ekhumoro 的解决方案对我来说不太适用 - 让我们说也许我错过了一些东西,或者这是一个特定于环境的东西。

无论如何....除了没有编辑这三个文件之外,我做了 ekhumoro 的建议:(XXX)

- designer-Qt4Qt5/designer.pro
- Qt4Qt5/features/qscintilla2.prf
- Qt4Qt5/qscintilla.pro

编辑它们的原因似乎很合理,但最终 Eric 安装失败了:

Sorry, please install QScintilla2 and its PyQt5/PyQt4 wrapper.
Error:     
dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so, 2):
Library not loaded: libqscintilla2_qt5.12.dylib
                                  ^^^^
Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so
Reason: image not found

请注意标有 ^^^^ 的 _qt5 - 理论上应该可以解决,但对我来说没有。我尝试了各种方法都无济于事。可能是我对某些设置的无知。

我希望 ekhumoro 的说明能够正常工作,因为建议对 3 个文件进行编辑 - 请参阅 (XXX) - 配置 Make 以使用 _qt5 创建库。我尝试了很多东西 - 符号链接等,但归根结底,省略 (XXX) 可以让一切正常进行。

所以 - 总而言之,*如果您不需要让 QScintilla 与 PyQt4PyQt5*同时工作,请按照 ekhumoro 的建议减去 (XXX) 处的内容 - 这样,Eric 应该可以毫无问题地安装。

注意上面的信息:它可能会破坏 Qt4 的 QScintilla 库

于 2016-06-18T18:59:43.487 回答
0

我想最重要的是--pyqt=PyQt5导致使用sip/qscimod5.sip而不是sip/qscimod4.sip. 不同之处在于它包含%Import QtWidgets/QtWidgetsmod.sipQAbstractScrollArea.

于 2016-12-25T22:53:54.593 回答