wxPython环境搭建

环境搭建

软件环境:

1、Python     https://www.python.org/downloads/

2、wxPython   http://www.wxpython.org/download.php

3、py2exe      http://sourceforge.net/projects/py2exe/?source=typ_redirect

4、IDE:pycharm  http://www.jetbrains.com/pycharm/download/

注意事项:

(1)选择合适的对应的版本。

a) 比如python分为2.73.5两个版本,而wxPython有支持2.62.7的版本,所以这里python选择2.7的版本

b) 选择32bit 或者是64bit, 选择对应位数的程序,比如32位的话就都选择32位,否则,编译的时候会出错提示:ImportError: DLL load failed: %1

 

安装完成后,测试第一个啥也不干的窗口:

import wx
class App(wx.App):
    def OnInit(self):
        frame=wx.Frame(parent=None,title='MyFirstWxPythonApplication')
        frame.Show()
        return True
app=App()
app.MainLoop()


Ps:脚本语言就是叼,啥注册窗口,消息循环都封装了,真是连亲妈都不认识了.....



把python脚本转化成exe
新建模块:convert2exe.py,输入代码:

Python代码   收藏代码
  1. from distutils.core import setup  
  2. import py2exe  
  3. setup(windows=[{"script""app1.py"}])  

然后运行windows的dos 命令行,切换目录到proj1/src目录下,输入命令:
python convert2exe.py py2exe
Python 会生成dist文件夹,并把依赖dll 等资源拷贝到这个目录,同时生成 app1.exe
双击app1.exe 即可运行


如果在运行时报以下错误:

error: MSVCP90.dll: No such file or directory

是因为没有找到MSVCP90.dll,在windows目录下搜索MSVCP90.dll这个文件,然后拷到python安装目录的DLLs下就可以了。

当打包PyQt项目时,可能会报以下错误

ImportError: No module named sip

这时只需要在打包时加上--includes sip就行啦,如:

1
setup.py py2exe --includes sip

运行结束之后,会在路径下生成dist和 build两个目录。其中dist目录中就是编译生成的文件。如果要在其他未安装Python的机器上运行编译好的程序,只要将dist目录复制到其他机器上即可。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 wxPython 搭建一个 FTP 服务器,您需要了解 Python 的 socket 模块和 FTP 协议。下面是一个简单的示例: ```python import wx import socket import os class FTPServer(wx.Frame): def __init__(self, parent, title): super(FTPServer, self).__init__(parent, title=title, size=(300, 200)) panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) # 添加主机名标签和文本框 hbox1 = wx.BoxSizer(wx.HORIZONTAL) lbl_host = wx.StaticText(panel, label="主机名") self.txt_host = wx.TextCtrl(panel, value=socket.gethostname()) hbox1.Add(lbl_host, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5) hbox1.Add(self.txt_host, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5) vbox.Add(hbox1) # 添加端口号标签和文本框 hbox2 = wx.BoxSizer(wx.HORIZONTAL) lbl_port = wx.StaticText(panel, label="端口号") self.txt_port = wx.TextCtrl(panel, value="21") hbox2.Add(lbl_port, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5) hbox2.Add(self.txt_port, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5) vbox.Add(hbox2) # 添加启动按钮 hbox3 = wx.BoxSizer(wx.HORIZONTAL) btn_start = wx.Button(panel, label="启动服务器") btn_start.Bind(wx.EVT_BUTTON, self.OnStart) hbox3.Add(btn_start, 1, wx.EXPAND | wx.ALIGN_LEFT | wx.ALL, 5) vbox.Add(hbox3) panel.SetSizer(vbox) self.Centre() def OnStart(self, event): # 获取主机名和端口号 host = self.txt_host.GetValue() port = int(self.txt_port.GetValue()) # 创建一个 FTP 服务器套接字 ftp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ftp_socket.bind((host, port)) ftp_socket.listen(5) print("FTP 服务器已启动") # 循环等待客户端连接 while True: client_socket, client_address = ftp_socket.accept() print("客户端已连接:", client_address) # 接收客户端请求并处理 request = client_socket.recv(1024).decode() if request.startswith("LIST"): # 列出文件列表 files = os.listdir(".") file_list = "\n".join(files) client_socket.send(file_list.encode()) elif request.startswith("GET"): # 下载文件 file_name = request.split()[1] with open(file_name, "rb") as f: data = f.read() client_socket.send(data) elif request.startswith("PUT"): # 上传文件 file_name = request.split()[1] with open(file_name, "wb") as f: data = client_socket.recv(1024) while data: f.write(data) data = client_socket.recv(1024) print("文件已上传:", file_name) else: # 未知请求 client_socket.send("未知请求".encode()) client_socket.close() if __name__ == "__main__": app = wx.App() frame = FTPServer(None, title="FTP 服务器") frame.Show() app.MainLoop() ``` 在这个例子中,我们使用了 wxPython 创建了一个简单的界面,包括主机名、端口号和启动按钮。当用户点击启动按钮时,程序将创建一个 FTP 服务器套接字,并循环等待客户端的连接。当客户端连接后,服务器将接收客户端的请求并进行处理,包括列出文件列表、下载文件和上传文件。 请注意,这个示例只是一个非常基本的 FTP 服务器,仅用于演示如何使用 wxPythonPython 的 socket 模块创建一个 FTP 服务器。在实际使用中,您需要更多的安全性、错误处理和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值