Python开发环境配置

一、安装python

1. 直接官网下载(目前,安装的是3.4版本,32位),注意该Python版本和操作系统32版本要和后面的插件一致。

2. Python version 3.4 required, which was not found in the registry.错误解决办法

(1)将LOCAL_MACHINE\software\python\PyhtonCore\3.4导出,不妨设为3_4.reg,
(2)编辑3_4.reg,将LOCAL_MACHINE全部替换为CURRENT_USER,点击保存,
(3)双击运行3_4.reg文件,现在CURRENT_USER\software\python\PyhtonCore应该存在了3.4目录了,
(4)运行相关包的安装程序,成功完成。

二、Python开发工具安装

(一)采用eclipse+Pydev插件的方式

1.在eclipse官网下载一个基本版本的eclipse

2.在Pydev官网下载(也可直接在sourceforge上下载离线安装包,是ZIP包,解压后有两个文件夹features和plugins,将其复制到eclipse的目录下。

3.点击eclipse的Window下的preferences,在弹出窗口里选择pydev->interpreters->python interpreter,在右边点击New,输入interpreter name和interpreter executable。name输入Python,executable选择Python.exe目录,点击OK即可。

4.点击File-》New-》PyDev Project。选择Python版本,下面选择“Create ‘src’ folder and add it  to the PYTHONPATH”,这样就有src目录,也可后面新建Pydev Package。

(二)使用Pycharm

一般用Pycharm的社区版就可。

 

其实如果想简便,可以直接下安装anaconda,里面只带了很多常用的包,下面记录单独安装一些包的过程。

三、安装numpy插件

1首先安装numpy,目前在windows系统64位下只找到whl格式的,whl格式安装方法如下

在python安装目录(我的是C:\Program Files\Python)下的scripts下通过pip命令安装

pip install d:\ numpy-1.9.3+vanilla-cp34-none-win_amd64.whl

注意:

(1)whl文件的文件名不能修改,否则会报找不到文件

(2)也可以直接 pip install numpy,但我用时报错

(3)安装wheel时,命令:pip install wheel

(4)python的whl资源:http://www.lfd.uci.edu/~gohlke/pythonlibs/

四、安装matplotlib

matplotlib依赖dateutil、six、pyparsing包(已找到3个EXE安装包)

测试代码如下:

import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
menStd =   (2, 3, 4, 1, 2)
ind = np.arange(N)  # the x locations for the groups
width = 0.35       # the width of the bars
fig, ax = plt.subplots()
rects1 = ax.bar(ind, menMeans, width, color='r', yerr=menStd)
womenMeans = (25, 32, 34, 20, 25)
womenStd =   (3, 5, 2, 3, 3)
rects2 = ax.bar(ind+width, womenMeans, width, color='y', yerr=womenStd)
# add some
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind+width)
ax.set_xticklabels( ('G1', 'G2', 'G3', 'G4', 'G5') )
ax.legend( (rects1[0], rects2[0]), ('Men', 'Women') )

def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
                ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)
plt.show()

五、安装scipy

安装时用的64位Python3.4版本,测试时一直提示“ImportError: DLL load failed: 找不到指定的模块。”,发现他找不到的模块都是pyd格式。(现已将python和插件全部换成32位Python3.4版本,测试通过)

scipy测试代码:

from scipy.optimize import fsolve
from math import sin,cos

def f(x):
    x0 = float(x[0])
    x1 = float(x[1])
    x2 = float(x[2])
    return [
        5*x1+3,
        4*x0*x0 - 2*sin(x1*x2),
        x1*x2 - 1.5
    ]

result = fsolve(f, [1,1,1])
print(result)
print(f(result))

 

六、GUI开发

1.测试代码:(使用tkinter,python自带tkinter)

import tkinter
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

但界面比较丑陋,还不如用pyqt

七、数据库编程(Mysql

由于原来python2.7mysqldb不支持python3.*,故使用pymysql

1.安装pymysql

1pip install pymysql

2)下载包

2.测试代码(增删改)

import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='92216891', db='test')
cur = conn.cursor()

'''
insert

'''
sta = cur.execute("insert into ky_user (name) values ('test')");
conn.commit()

'''
update

'''
sta = cur.execute("update ky_user set name='spirit2' where name='spirit'");
conn.commit()


'''
delete
'''
sta = cur.execute("delete from ky_user where name='test'");
conn.commit()

'''
query
'''
cur.execute("select * from ky_user")
for r in cur:
    print(r)

cur.close()
conn.close()

八、网络编程

1.简单TCP程序

(1)服务器端代码:

import socket,traceback
host=''
port=12345
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
s.listen(1)

while 1:
    try:
        clientsock,clientaddr=s.accept()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()
        continue
    try:
        print("connect from:"+clientsock.getpeername()[0]+"["+clientsock.getpeername()[0]+"]")
        while 1:
            data=clientsock.recv(4096)
            if not len(data):
                break
            print(clientsock.getpeername()[0]+':'+str(data))
            t=input('Me:')
            clientsock.sendall(t.encode())
    except (KeyboardInterrupt,SystemExit):
        raise
    except:
        traceback.print_exc()


    try:
        clientsock.close()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()

(2)客户端代码:

import socket,sys
port=12345
host='127.0.0.1'
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
    s.connect((host,port))
except:
    print('连接错误!')
while 1:
    data=input('Me:')
    s.send(data.encode())
    buf=s.recv(4096).decode()
    if not len(buf):
        break
    print("Server:"+buf)

2.简单UDP程序

(1)服务器端

from socket import *
from time import ctime
HOST = '127.0.0.1'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT)
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)


while True:
    print('wating for message...')
    data, addr = udpSerSock.recvfrom(BUFSIZE)
    print("cli:"+data.decode())
    str = input("Me:")
    udpSerSock.sendto(str.encode(),addr)

udpSerSock.close()

(2)客户端

from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST, PORT)
udpCliSock = socket(AF_INET, SOCK_DGRAM)


while True:
    data = input('>')
    if not data:
        break
    udpCliSock.sendto(data.encode(),ADDR)
    data,ADDR = udpCliSock.recvfrom(BUFSIZE)
    if not data:
        break
    print(data)

udpCliSock.close()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值