Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6开发环境

2024-02-27 23:18

本文主要是介绍Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

##简述
原来在windows下实现的python code,因为业务需要,要将其放到Ubuntu(其实是Linux)下来进行开发和demo。因此安装了目前最新的Ubuntu16.04 64bit系统,并搭建带有GUI的python开发环境。
##环境与工具选择
最终确认选择“Ubuntu16.04(64 bit)+ Python3.5 + Qt5.7.0 + SIP4.18.1 + PyQt5.7 + QScintilla2.9.2 + Eric6.0 ”
首先Ubuntu16.04是默认安装了python2.7和python3.5的,因此python这部分就可以不需要安装了。因为涉及GUI的开发,所以要准备pyqt的环境等东西。查看系统python版本:

python
python3
python3.5

这里写图片描述
另外,需要安装一个python模块:

sudo apt-get install python3-dev

否则后面的SIP安装会有找不到python.h的错误提示。
##QT安装
###软件安装
可以从官网下载,也可以从这里下载,我下载了5.7.0的Linux 64bit版本,是一个.run文件。
这里写图片描述
使用上面的两行命令,进行安装,此时会弹出安装对话框:
这里写图片描述
然后按照提示一步步选择即可:
这里写图片描述
安装完成后,可以直接打开QT Creator:
这里写图片描述
###软件配置
我的Qt5.7.0安装在/home/ethan下,这是在前面的安装步骤时选择的。而在/home/ethan/Qt5.7.0/5.7/gcc_64/bin/下有qmake。
安装完成后用下面的命令配置一下PATH,在当前用户主目录下的.bashrc (or .zshrc)文件中加入:

export QTDIR=/home/ethan/Qt5.7.0/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}

此时再在命令行中输入qmake,看到如下:
这里写图片描述
说明配置成功了。
另外需要将/usr/lib/x86_64-linux-gnu/qt4/bin/qmake软连接到/home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake上,否则后面在编译安装PyQt时可能会出问题:

sudo ln -s /home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake /usr/lib/x86_64-linux-gnu/qt4/bin/qmake

这里最好把OpenGL的库也安装上,不然后面的GUI相关工具的安装会有问题:

sudo apt-get install mesa-common-dev  
sudo apt-get install libglu1-mesa-dev -y 

##SIP安装
因为系统接口都是C, C++的而python要调用这些C/C++接口,就需要这个SIP,安装PyQt之前必须先安装对应版本的SIP。PyQt编译时使用的SIP版本必须与python默认调用的SIP保持一致!否则python中是无法调用PyQt的。QT安装的是当前最新的QT5.7.0,这里SIP最新版本也到了4.18.1,从SIP下载这里下载SIP安装文件,sip-4.18.1.tar.gz。在下载SIP之前,需要确认下自己的系统没有默认安装过其他版本,否则容易造成混乱。用

sip -V

可以看到系统的sip版本。不过我的系统并没有SIP的。
下载的sip-4.18.1.tar.gz是一个源码包,需要在本地编译后安装:

    tar -zxvf sip-4.18.1.tar.gz   cd sip-4.18.1  python3 configure.py  sudo make  sudo make install  

然后需要核对下当前的SIP版本以及python3中使用的SIP的版本,看两者是否一致。核对当前SIP版本:

sip -V

会看到是4.18.1
然后命令行中输入python3,打开python3.5环境,输入:

>>> import sip
>>> print(sip.SIP_VERSION_STR)

也看到显示是4.18.1的,这样就说明SIP版本一致了,安装OK。
##QScintilla安装
QScintilla2是连接编译器和Python的接口,是Eric的必需前置组件。QScintilla2 中需要单独安装3个模块,本体,Designer和python bindings。这一步先只安装本体部分,后面两个需要等安装了PyQt5才能安装,这个顺序不能搞错,不然会在安装QScintilla的python bindings时会无法生成C++ code,导致安装的失败。首先需要从QScintilla下载这里下载源码包。下载完成后,对QScintilla_gpl-2.9.3.tar.gz进行解压:

tar -xzvf QScintilla_gpl-2.9.3.tar.gz  
cd QScintilla-gpl-2.9.3 

###安装本体:

cd Qt4Qt5  
qmake qscintilla.pro  
sudo make  
sudo make install

如果在上面的sudo make时,出现“/usr/bin/ld: cannot find -lGL”问题,可以用如下命令做个软连接:

sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so

之后再去sudo make。
这里写图片描述
##PyQT5安装
PyQt是Python的一个跨平台图形开发工具集,是Python与Qt的成功融合。PyQt包含了大约440个类、超过6000个的函数和方法。
首先从PyQt5下载这里下载目前最新版本,PyQt5_gpl-5.7.tar.gz。使用如下命令编译安装:

tar -zxvf PyQt-gpl-5.7.tar.gz  
cd PyQt-gpl-5.7  
python3 configure.py
sudo make
sudo make install

然后使用python3命令进入python环境,输入:

>>>import PyQt5 

此时没有任何提示,说明安装没有问题,PyQt5 module import OK。
##QScintilla安装后续部分
前面已经安装了本体Qt4Qt5部分了,这里在安装完PyQt5后,再继续安装后面的两个部分。
###安装Designer

cd QScintilla-gpl-2.9.3/designer-Qt4Qt5  
qmake designer.pro   
sudo make  
sudo make install  

如果在sudo make时,遇到“fatal error: GL/gl.h: No such file or directory”的问题,这是由于系统中没有安装OpenGL库所导致。使用如下命令进行安装OpenGL库即可:

sudo apt-get install mesa-common-dev  
sudo apt-get install libglu1-mesa-dev -y 

安装后再进行sudo make,就OK了。
###安装Python bindings

cd QScintilla-gpl-2.9.3/Python  
python3 configure.py --pyqt=PyQt5  
sudo make  
sudo make install

这里Python bindings安装时需要指定 --pyqt=PyQt5参数,否则默认是为PyQt4安装。或者直接修改其configure.py,将pyqt5_is_default = False改为pyqt5_is_default = True也可。
##Eric6安装
Eric是一款强大的开源Python IDE,支持Qt界面设计器的Eric在Python GUI开发中更是首屈一指,Python+PyQt+Eric已经成为一种标准的Python GUI开发平台。首先从Eric6下载这里下载安装包代码–eric6-6.1.7.tar.gz。然后用如下命令解压安装:

tar -zxvf eric6-6.1.7.tar.gz
cd eric6-6.1.7  
sudo python3 install.py

此过程会检测之前安装的各个软件及其版本信息,并且很快会安装完成:
这里写图片描述
因为是通过sudo python3 install.py来安装,在打开eric6时也要在前面加上sudo:

sudo eric6

接下来打开eric6界面进行配置,主要是配置eric编辑器功能:
刚打开界面,就提示需要进行配置:
这里写图片描述
选择Settings -> preference -> Editor -> Autocompation。勾选所有选框,打开代码自动完成功能:
这里写图片描述
选择Settings -> preference -> Editor -> QScintilla 。勾上左右的两个选框,然后在下面source中,选择from Document and API files:
这里写图片描述
选择Settings -> preference -> Editor -> APIs。勾选Complie APIs Autocompation,在Language中,选择python3。点面下面的Add from installed APIs按钮,选择住需要的.api文件。最后点击Compile APIs:
这里写图片描述
选择Settings -> preference -> Interface -> Interface。右侧Language根据喜好选择中文或者English,我这里并没有安装中文语言包,所以使用默认的English。
接下来选择自己的工程文档将要放置的位置:
这里写图片描述
最后要重启eric才生效。
接下来用一个小的demo简单验证下python开发环境是否搭建OK。
创建一个demo1.py的python源代码,demo code:

#!/usr/bin/env python  
from PyQt5.QtWidgets import (QApplication, QLabel)  
import sys  if __name__ == "__main__":  app = QApplication(sys.argv)  label = QLabel("<center>Hello World with PyQt5!</center>")  label.resize(200, 50)  label.show()  sys.exit(app.exec_()) 

然后在放置demo1.py路径下,使用如下命令运行该demo:

python3 demo1.py

接下来看到运行效果如下:
这里写图片描述
##参考文章
【1】 Ubuntu 14.04下搭建Python3.4 + PyQt5.3.2 + Eric6.0开发平台
【2】 ubuntu 14.04+QT5.5+PyQt5.5+Eric-6开发环境搭建
【3】ubuntu16.04LTS安装Qt Creator

这篇关于Ubuntu16.04下搭建python3.5+PyQt5.7+Eric6开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/753857

相关文章

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.