在Virtualenv中匯入PyQT4

2021-07-05 08:54:33 字數 953 閱讀 8038

最近進行乙個小專案,目的是實現在類似谷歌的介面中,在搜尋框中輸入 url,將對應**的截圖即時返回給使用者。

在後台實現過程中,採用了用 pyqt4 的 qtwebkit 來模擬瀏覽器對網頁進行渲染,之後截圖。但在部署過程中出現了問題,即在 virtualenv 中執行程式時無法 import pyqt4,同時也無法使用命令直接將 pyqt4 安裝在虛擬環境中。

由於 pyqt4 安裝在主環境中,在虛擬環境中沒有 pyqt4 的包,因此無法匯入,命令安裝 pyqt4 需要 sudo 許可權,而用 sudo 安裝時是採用 root 許可權安裝的,所以安裝環境是在系統的主環境,因此無法簡單的用命令在 virtualenv 中安裝 pyqt4.

因此,我們需要手動將 pyqt4 的包以及 sip.so 匯入到 virtualenv 中來。

在已安裝 pyqt4 的系統中搜尋,我們可得到 pyqt4 包的位置,以及sip.so檔案的位置

如果你是使用 python2.7 安裝 pyqt4 的,則兩者會在對應的如下位置:

/usr/lib/python2.7/dist-packages/pyqt4

/usr/lib/python2.7/dist-packages/sip.so

如果你是使用python3的,則將 python2.7 換為你對應的版本。

接下來,我們將這兩個檔案放在你的專案建立的 virtualenv 目錄下的./lib/python2.7/site-packages/目錄下,即可解決問題。

解決的原理是dist-packages是 debian 類 linux 系統的包安裝預設位置,如果你用sudo apt-get install命令安裝包,一般會安裝到這個目錄,而site-packages目錄是 python 包的手動安裝目錄,將包放入這個目錄下即可正常 import 和執行。

在flex中匯入fl包

flash包與fl包有什麼不同?flash包與fl包到底有什麼區別呢?簡單的說就是flash是flash player核心的庫,不管在flash中還是fd fb中,都可以用 而fl是專門用於flash中的乙個元件庫。雖然fl包下很多包名是跟flash 包下一樣的,但卻不是相同的,大致可將前者看作是後...

在vue中匯入Excel表

使用的庫js xlsx 純js即可讀取和匯出excel的工具庫 安裝 在main.js中引引入 import xlsx from xlsx dist xlsx.full.min 在所需頁面引入 import xlsx from xlsx 使用 這裡使用的是element元件 匯入 readworkb...

visual studio在主工程中匯入靜態庫工程

又他媽的乙個上午浪費到這樣乙個無意義的事情中了。需求 我需要將別人的vs工程匯入到自建的工程檔案中,就是已經獲取了別人的vs工程的原始碼,要把它當做乙個靜態庫使用。這個問題,可能太簡單,以至於網上在這裡語焉不詳。本人是使用vs的小白,今天才開始用,且是情非得已。平時,用這麼大的ide,有必要嗎。這個...