2014-03-27 92 views
9

我想在我的Mac上安裝PyQt,以便我可以安裝python ghost。我已經安裝了Qt和SIP。我已經下載PyQt的,但是當我運行安裝PyQt

python configure-ng.py  

我得到以下錯誤:

Error: Use the --qmake argument to explicitly specify a working Qt qmake. 

上我應該做的任何想法?

+0

應明確指定工作的Qt做。 – Hyperboreus

+0

我該怎麼做?我是否下載qmake或創建自己的?我對Qt不是很熟悉。 – steeling

+3

@ user3417176。 qmake是Qt的一部分。您需要指定路徑,例如'--qmake path/to/qt/bin/qmake'。 – ekhumoro

回答

6

既然你是在Mac上,我會用Homebrew。這爲我工作了一天,但花了很長的時間來完成:

brew install pyqt 
+0

不幸的是,這對虛擬環境來說不會很好。 – Jonatan

+0

我最近發現['vext.pyqt4'](https://pypi.python.org/pypi/vext.pyqt4)和['vext.pyqt5'](https://pypi.python.org/pypi/ vext.pyqt5)包,允許虛擬環境訪問全局安裝的pyqt庫。使用[Riverbank](https://riverbankcomputing.com)提供的二進制安裝程序完全適合我。 –

4

configure-ng.py既需要qmakesip配置構建過程。

錯誤消息意味着configure-ng.py找不到qmake可執行文件。你需要指定它的位置,像這樣的東西:

$ python configure-ng.py --qmake=/path/to/qmake

QMAKE的位置取決於1)你如何安裝它,2)操作系統所使用。


對於Mac OS,少痛苦的方式(對我來說)是sipqmake使用自制

$ brew install sip

$ brew install qt

brew will install them in the directory: /usr/local/Cellar/

然後,指定運行configure-ng.py安裝兩個地點:

$ python configure-ng.py --qmake=/usr/local/Cellar/qt/VERSION/bin/qmake --sip=/usr/local/Cellar/sip/VERSION/bin/sip 

如果一切良好,繼續PyQt的安裝:

$ make 

make需要一段時間(約20分鐘,在我的情況)。

最後,安裝:

$ make install 

make may needs admin permission $ sudo make

+0

非常有幫助,謝謝! – Oliver

2

不使用PyCharm IDE命令行。我也不需要安裝Qt .:

  • 下載Python 3.6.1(雙擊安裝)。
  • 下載PyCharm IDE(雙擊安裝)。
    • 轉到PyCharm>首選項>項目解釋器。
    • 將項目解釋器路徑指向python.3.6.1
    • '+'按鈕,搜索pyqt5。選擇PyQt5版本5.8.2比單擊安裝包。

enter image description here

自動將要安裝的PyQt 5.8.2和SIP。安裝完畢後,回到Project Interpreter並確保SIP已安裝。如果沒有安裝:'+'按鈕並安裝sip。

enter image description here

試試這個代碼,看看它是否適合你。 :)

#!/usr/bin/env python3 

from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget 
from PyQt5.QtCore import Qt 


class Example(QWidget): 

def __init__(self): 
    super().__init__() 
    self.initUI() 

def initUI(self): 
    self.setFixedSize(200, 100) 
    self.setWindowTitle('Example') 
    label = QLabel('Hello') 
    layout = QVBoxLayout() 
    layout.addWidget(label) 
    layout.setAlignment(Qt.AlignCenter) 
    self.setLayout(layout) 


if __name__ == '__main__': 

import sys 
from PyQt5.QtWidgets import QApplication 

app = QApplication(sys.argv) 
ex = Example() 
ex.show() 
sys.exit(app.exec_()) 

enter image description here