Python编程:
第一阶段(可视化):基础Python IDE之Anaconda—》+可视化加强环境Eric(内置QT Designer,python可视化更方便)
第二阶段(代码编写):完成可视化后—》复制python代码到Eclipse IDE环境(Eclipse安装PyDev插件,代码编写更方便)。
Python3 输入和输出 | 菜鸟教程 http://www.runoob.com/python3/python3-inputoutput.html
第一部分:------------python编程为什么要安装eric--------------------------------------------------
Eric官方网站下载:http://eric-ide.python-projects.org/
Eric is a full featured Python editor and IDE, written in Python. It is based on the cross platform Qt UI toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everdays' quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. eric includes a plug-in system, which allows easy extension of the IDE functionality with plug-ins downloadable from the net.
Eric是一款功能齐全的Python编辑器及集成开发环境IDE,用Python编写。它基于跨平台Qt UI工具,集成了非常灵活的Scintilla编辑控件。它设计成用作日常快速而随性的编辑器,不仅仅是一个专业的项目管理工具,集成了许多先进性Python提供专业编码程序。Eric包含一个插件系统,允许从网上下载插件扩展IDE功能。
Eric的功能Features众多,其中一个功能:Tools for previewing Qt forms and translations,用于预览 Qt 窗体和翻译的工具。等等......
该网页有安装eric6所需环境相关软件下载地址。
第二部分:---------------安装Eric环境要求顺序---------------------------------------------------------------------
python集成环境(IDE)的问题:原生的IDLE并不好用,所以使用其它IDLE。安装eric6顺序:
1、安装python(用anaconda代替),然后安装QT
2. Build and install QScintilla2
3. Build and install sip
sip安装:https://www.riverbankcomputing.com/software/sip/download
4. Build and install PyQt5
5. Build and install QScintilla2 Python bindings
(part of the QScintilla2 package)
6. Install eric6
蓝灯最新版下载地址 · Issue #833 · get*/forum · GitHub https://github.com/get*/forum/issues/833
GitHub - get*/forum: 蓝灯(*)官方论坛 https://github.com/get*/forum/
完美安装 Anaconda3 + PyQt5 + Eric6(很好):http://blog.csdn.net/weiaitaowang/article/details/52045360
Eric操作----------------------------------------------------
Eric操作环境的基本功能初步设置:
Eric菜单栏——Settings——Preferences——Editor:1、APIs:Language:Python3;Project Type:PyQt5 GUI;Compile APIs:点击确定。
2、Autocompletion:from Document and API files
Project建立:Eric菜单栏——Project——New(新增项目或其它)——New Forms:
Eric界面,点击Forms图标(工具栏Eric绿色小莽蛇图标),在下边空白处右键——New Forms:
自动调出QT Designer工具,开始图形界面设计,在QT Designer设计完成后保存。返回Eric界面,在Forms标签下已经生成扩展名为.ui的文件。
在Forms标签下,右键点击相应.ui文件——Compile form;在相邻Sources标签(python黄色小莽蛇图标)由.ui文件编译成同文件名加前缀Ui_、后缀.py的Ui_*.py文件。
在Forms标签下,右键点击相应.ui文件——Generate Dialog Code:弹出Forms code generator,找到需要建立信号的控件,展开事件,勾选相应事件,然后Classname选择New,自动生成Class名称,点击OK。
这时在Sources图标的文件列表中同名.py文件中已经生成了相应的信号与槽函数。
注:QT Designer中,运用F3\F4切换Widgets、Signals/Slots功能,可以在Form选中Widgets拖拽到另一Widgets上快速建立信号与槽连接。另外,信号与槽(Signal/Slot Edit)属性窗口,通过操作能实现简单的信号与槽功能。
Qt之信号signals和槽slots详解 - CSDN博客 https://blog.csdn.net/bruce_0712/article/details/53694374
或者通过Eric中菜单——Form——View code查看此Form代码。但Eric提示:
unable to lanch D:\ProgramData\Anaconda3\Lib\site-packages\pyqt5-tools\bin\uic
解决办法:发现D:\ProgramData\Anaconda3\Lib\site-packages\pyqt5-tools\没有bin文件夹,在D:\ProgramData\Anaconda3\Library\bin里面有uic文件,而且有designer等程序,将此路径下的bin文件夹整体复制到D:\ProgramData\Anaconda3\Lib\site-packages\pyqt5-tools文件夹下,正常了。
第三部分:--------------------分步安装操作------------------------------------------------------------------
1、Anaconda安装,完全免费(重点,替代python)
anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。[1] 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。www.continuum.io/downloads,如果下载缓慢,百度搜索:anaconda下载,清华大学开源软件镜像站下载。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
说明:anaconda包含python,ipython等解释器,建议安装anaconda前将原生python删除。
https://www.anaconda.com/download/
安装:先卸载任何版本的python解释器,包括原生的及其它的;仅使用anaconda解释器。
2、 Install Qt,下载:http://download.qt.io/archive/qt/
该下载网页最下边:List of official Qt-project mirrors,是镜像网站,下载不受限制。
3、安装PyQt(最好的方法就是直接 pip install pyqt5 pyqt5-tools):
在联网的情况下:打开cmd命令窗口,输入pip3 install pyqt5回车,输入命令pip3 install pyqt5-tools,安装完成后,在Lib\site-packages\pyqt5-tools里可找到designer.exe等工具。
离线安装:下载相应的whl文件,地址pypi.python.org/pypi/pyqt5和pypi.python.org/pypi/pyqt5-tools。安装whl文件需要先安装wheel,即pip3 install wheel,然后执行pip install xxx.whl
注意: pyrcc5.exe文件并不在pyqt5-tools中,而是在~~\Scripts 文件夹中。
下载PyQt官方网站:http://www.riverbankcomputing.co.uk
4、QScintilla安装,下载:https://pypi.python.org/pypi/QScintilla#downloads,然后安装:pip install QScintillaxxx.whl(真实的文件名),联网安装(好用无须下载),cmd窗口:pip install QScintilla。
QScintilla是Scintilla在QT上的移植。Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。
QsciScintilla的使用方法总结 http://blog.csdn.net/qq_19528953/article/details/52659109
5、Eric6安装,在eric6解压缩目录须使用命令:python install.py install安装(python uninstall.py install卸载)成功。
第四部分:------------------错误总结--------------------------------------------------------
问题A:安装eric6时,提示:Could not find a version that satisfies the requirement install.py。
解决:使用命令pip install install.py(不可用),应使用python install.py install命令安装。
问题B:安装Eric时提示:Sorry, please install QScintilla2 and its PyQt5/PyQt4 wrapper.Error: cannot import name 'Qsci'解决:安装Qscintilla,见上。
问题C:运行eric6.bat文件,黑窗一闪而过,弹出窗口:python已停止工作。查看详细信息:pythonw.exeeric6.bat文件内容:
@echo off
start "" "d:\ProgramData\Anaconda3\pythonw.exe" "d:\ProgramData\Anaconda3\Lib\site-packages\eric6\eric6.pyw" %1 %2 %3 %4 %5 %6 %7 %8 %9
打开防火墙:控制面板--Windows防火墙--允许程序或者功能通过防火墙--允许运行另一程序:把相应的Python.exe,pythonw.exe还有sqlservr.exe添加到防火墙允许程序列表
问题D:运行eric6.bat(eric6中F2运行python源文件)时,提示:无法定位序数4540于动态链接库LIBEAY32.dll上。
解决:(已经验证有效方法)
搜索计算机所有盘符libeay32.dll,发现在不同目录有多个同名不同大小的文件。
将D:\ProgramData\Anaconda3\Library\bin目录下copy到windows文件夹下子目录system32下,运行eric6.bat正常了。
可使用命令:
copy libeay32.dll %windir%\system32\
regsvr32 %windir%\system32\libeay32.dll /s
同理:eclipse程序出现此问题可能原因是这样的,“无法定位序数于动态链接库libeay32.dll”是这个dll有很多应用程序都会自带,但是版本各不相同。可以在系统中搜索出所有的该名字的文件,然后看eclipse查找的是哪个路径下的,全部替换为较新版本的。出问题的机器上应该都有好几个这个dll文件
无法定位序数4540于动态链接库LIBEAY32.dll上(以及其它无法定位序数的解决方案) http://blog.csdn.net/u014597198/article/details/78748574
1、程序依赖于libeay32.dll动态链接库时:
创建脚本:
@echo 开始注册
copy libeay32.dll %windir%\system32\
regsvr32 %windir%\system32\libeay32.dll /s
@echo libeay32.dll注册成功
@pause
a、程序不依赖于libeay32.dll动态链接库时:(无法定位序数一般情况下是不依赖)
找到系统目录下的该库文件将其改个名,例如win32下:
在系统盘的windows的system32下把libeay32.dll改成libeay32_old.dll,就OK了。
b、如果程序依赖于该动态库,而且该库已经损坏,则需要重新下载
(以此类推,其它一般的动态库采取同样方法有效)
问题原因:dll容易丢失,可以网上下载LIBEAY32.D11然后放到下面介绍的文件夹里 这个是
因为某些程序用隐含的方式调用了libeay32.dll,就是说该程序没有指定调用哪个地方的libeay32.dll,那么windows默认会到windows目录和windows\\system32目录查找libeay32.dll,如果找到就调用。但现在很多程序偷懒,安装的时候都把自己要用的libeay32.dll放到system32目录中,然后就不管了。如果这个libeay32.dll版本新还无所谓,但如果比较旧就会让其它需要这个文件的程序出错,就如楼主这样。 所以要解决这个问题,就去找一个比较新的libeay32.dll(很多程序的目录中都有,自己在硬盘上面搜索一下),然后放到system32里面,应该都能解决问题。 我在我的电脑上搜索了libeay32.dll文件,然后把它复制到c:\\windows\\system32下, 64位系统请放到C:\Windows\SysWOW64。
问题E:eric6中执行语句:from PyQt5 import QtCore ,提示:No module named 'PyQt5'
错误原因:eric6的debugger之pythonw.exe路径设置错误。
自己以为安装了pythonw的3.6新版本,将eric6的默认编译器改为:D:\ProgramData\Anaconda3\pkgs\python-3.6.3-h9e2ca53_1\pythonw.exe。所以出现了No module named 'PyQt5'错误提示。
打开eric6.bat运行程序——菜单之settings(设置)下拉栏——preferences(属性)——debugger(编译器)——python3:
python3 interpreter for debug client:更改原来自动设置的路径为D:\ProgramData\Anaconda3\pythonw.exe。错误提示消失。
问题F:eric6系统中函数名称区分大小写
eric6系统中函数名称区分大小写,如果QMessageBox写成qmessagebox,eric中的python语句系统是不认识的。
问题G:Eric6打开文件按钮弹出对话框:QWindowsNativeFieDialogBase::OnSelectionChange
对话框中选择要打开的一个文件,确定后。在错误提示对话框中点击确定按钮,错误提示内容变为如下:
Debug Message:
QWindowsNativeFileDialogBase::onSelectionChange (QUrl("file:///D:/lxsjp")) 1
File: None
Line: 0
Function: None
换电脑还是出现这种问题。
在电脑中查找:qwindowsdialoghelpers.cpp
C:\Qt\Qt5.7.0\5.7\Src\qtbase\src\plugins\platforms\windows\qwindowsdialoghelpers.cpp
void QWindowsNativeFileDialogBase::onSelectionChange()
{
const QList<QUrl> current = selectedFiles();
m_data.setSelectedFiles(current);
if (current.size() == 1)
emit currentChanged(current.front());
}
https://bugreports.qt.io/browse/QTBUG-65532
QWindowsNativeFileDialogBase::onSelectionChange() logs with qDebug()
第四部分:为什么还要Eclipse+PyDev----------------------------------------------------------
5、Eclipse+pydev安装Eclipse安装:
Eclipse安装环境:因Eclipse为基于java框架,安装Eclipse需要先安装虚拟机jdk,或java运行环境(jre)。360软件小助手搜索jdk下载。
java说明文件,https://docs.oracle.com/javase/8/docs/
Eclipse下载站点:Eclipse Downloads http://www.eclipse.org/downloads/
在eclipse中安装pydev
PyDev安装:在Eclipse软件菜单栏,To install PyDev and PyDev Extensions using the Eclipse Update Manager, you need to use the Help > Install New Software... menu.
弹出对话框,填入网站:http://www.pydev.org/updates/,显示:pending...,等待搜索内容出现,勾选并确定。
PyDev安装时,可能提示有个文件安装超时失败什么的。其实是安装过程中需要人工干预,如部分软件模块未签名等,是否继续安装。这时需要双击Eclipse程序界面右下角的文件夹形状图标,观察安装进程,进行选项安装。或者在panding过后的模块选择时,分模块安装。同时观察问题出在哪里。
PyDev详细文档,http://www.pydev.org/manual_101_install.html,2003年7月16日,以 Fabio Zadrozny 为首的三人开发小组在全球最大的开放源代码软件开发平台和仓库 SourceForge 上注册了一款新的项目,该项目实现了一个功能强大的 Eclipse插件,用户可以完全利用 Eclipse 来进行 Python 应用程序的开发和调试。这个能够将 Eclipse当作 Python IDE 的项目就是 PyDev。
【教程】在Eclipse中使用PyDev进行Python开发 - CSDN博客 http://blog.csdn.net/huang9012/article/details/17075735/
Eclipse-new-other-pydev-pydev project
生成.exe文件:C:\Users\Administrator\Desktop\PyInstaller-3.3.1\PyInstaller-3.3.1
Pyqt 如何实现按Tab键实现命令自动补全以及按上下键查历史命令
Qt 5.4错误"qt.network.ssl: QSslSocket: cannot call"
https://www.cnblogs.com/totogo/p/6873392.html
Windows7(64位)环境下安装openssl详细步骤+图解
http://bbs.csdn.net/topics/392193545?page=1
What is SIP?Riverbank | Software | SIP | What is SIP? https://www.riverbankcomputing.com/software/sip/intro
使用python经常出现NameError: name 'xxx' is not defined
NameError: name ‘_main_’ is not defined 这样的错误。
系统变量或系统函数名称左右两端是双下划线,以区别普通函数?因为__main__是一个系统变量,包含了模块的名称。name两端是双下划线的"__",并不是只有一个"_"。
同理:__init__初始化函数或if __name__ == "__main__"等等。
自定义函数或方法及其调用问题(本例自定义my_clicked方法):
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.graphicsView.mousePressEvent=self.my_clicked
def my_clicked(self, e):
print('adfddsddd')
self.graphicsView.mousePressEvent=self.my_clicked如果写成self.graphicsView.mousePressEvent=my_clicked,报错:name 'my_clicked' is not defined
def my_clicked(self, e): 如果写成:def my_clicked(self): 就会报错:Exception "unhandled TypeError"
my_clicked() takes 1 positional argument but 2 were given
eric问题--------------------------------------------------------------------------------------------------
Eric程序菜单——Start——ReStart(工具栏,或按钮),提示:the debugger backend could not be started