分类目录归档:python

ubuntu16.04安装TensorFlow的正确步骤【轉】

【原文鏈接】

https://blog.csdn.net/y1250056491/article/details/78670710/

https://blog.csdn.net/ymjiang820/article/details/80244457

【原文摘錄】

一、查看系统所安装的python版本

打开终端输入指令:python,如图1所示,我的系统是ubuntu16.04.03,默认安装的python版本为2.7.12。
图1

二、安装python对应版本的pip和依赖包

若python版本为2.7,则输入如下命令:

sudo apt-get install python-pip python-dev

若python版本为3.x,则输入如下命令:

sudo apt-get install python3-pip python3-dev

三、升级pip版本

在装tensorflow之前,不管是不是最新的pip版本,都要更新一下,具体命令如下:

  1. python 2.7版本:sudo pip install –upgrade pip
  2. python 3.x版本:sudo pip3 install –upgrade pip

四、更改pip源地址(提高下载速度)

修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件,文件夹要加”.”,表示是隐藏文件夹),内容如下:

  1. [global]
  2. index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  3. [install]
  4. trusted-host=mirrors.aliyun.com

五、安装TensorFlow

TensorFlow可以安装CPU和GPU两种版本,CPU版本安装命令如下:

  1. python 2.7版本:sudo pip install tensorflow
  2. python 3.x版本:sudo pip3 install tensorflow

GPU版本安装命令如下:

  1. python 2.7版本:sudo pip install tensorflow-gpu
  2. python 3.x版本:sudo pip3 install tensorflow-gpu

若上述命令执行过程没有报错,则安装成功。

六、测试安装结果

进入python编译环境,导入TensorFlow,做一个简单的加法运算,如图2所示。

使用以下命令安装TensorFlow

sudo pip install tensorflow

如果出现以下错误:

Cannot uninstall ‘six’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

则可以采用这个命令,即可解决:

sudo pip install tensorflow –ignore-installed six

win7搭建pyqt4开发环境【轉】

【原文鏈接】
https://www.cnblogs.com/toSeek/p/6363036.html
【原文內容】
win7 64bit
python2.7  https://www.python.org/ftp/python/2.7.13/python-2.7.13.amd64.msi
pyqt4    https://downloads.sourceforge.net/project/pyqt/PyQt4/PyQt-4.11.4/PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64.exe?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fpyqt%2Ffiles%2FPyQt4%2FPyQt-4.11.4%2F&ts=1484798634&use_mirror=ncu
eric6    https://downloads.sourceforge.net/project/eric-ide/eric6/stable/17.01/eric6-17.01.zip?r=http%3A%2F%2Feric-ide.python-projects.org%2Feric-download.html&ts=1484797072&use_mirror=nchc

python2.7和pyqt4直接运行安装即可;

解压eric6的安装包,使用python运行其中的install.py;

启动eric6:C:\Python27\Scripts\eric6.bat,默认应该就是简体中文;

第一次进入需要进行一些配置,在编辑器->api中把Python2 pyqt的api编译下,开启自动补全等;

在窗体中创建一个ui,双击会进入qt设计师进行可视化界面设计:

待界面设计完毕,保存,在ui文件上右键”编译窗体“,然后右键”生成对话框代码“;

新建一个main.py文件,调用并显示窗体:

# -*- coding: utf-8 -*-

from mainframe import *
from PyQt4.QtGui import QApplication

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

在main.py按f5开始调试(之后在任意地方按f4都可以从main.py开始调试,直到再按f5);

tips: eric6不是特别成熟,如果不是偏爱IDE的话还是建议用自己熟悉的编辑器(vim什么的);

不用eric6的情况下,手动编译ui文件:

C:\Python27\Lib\site-packages\PyQt4\pyuic4.bat -o ui_mainframe.py mainframe.ui

使用pyinstaller打包成exe文件

首先打开一个dos窗口,使用pip安装pyinstaller(使用的是豆瓣的源)

C:\Python27\Scripts\pip install -i https://pypi.doubanio.com/simple/ pyinstaller

在dos窗口cd到上述main.py所在目录,执行命令

c:\Python27\Scripts\pyinstaller.exe -F -w main.py

若无错误,会在当前目录生成dist和build文件夹,dist下的main.exe就是打包后的结果,可以拷贝到其他未安装python和pyqt环境的机器上测试执行;

pyinstaller的参数说明:

-F     打包成一个单文件
-c     打包成一个控制台程序(默认)
-w     打包成一个windows程序
-i     指定一个ico文件作图标

over

python编程常用模板总结【轉】

 

在我们编程时,有一些代码是固定的,例如Socket连接的代码,读取 文件内容的代码,一般情况下我都是到网上搜一下然后直接粘贴下来改一改,当然如果你能自己记住所有的代码那更厉害,但是自己写毕竟不如粘贴来的快,而且自 己写的代码还要测试,而一段经过测试的代码则可以多次使用,所以这里我就自己总结了一下python中常用的编程模板,如果还有哪些漏掉了请大家及时补充 哈。

一、读写文件

1、读文件

(1)、一次性读取全部内容

filepath='D:/data.txt' #文件路径

with open(filepath, 'r') as f:
    print f.read()

(2)读取固定字节大小

# -*- coding: UTF-8 -*-

filepath='D:/data.txt' #文件路径

f = open(filepath, 'r')
content=""
try:
    while True:
        chunk = f.read(8)
        if not chunk:
            break
        content+=chunk
finally:
    f.close()
    print content

(3)每次读取一行

# -*- coding: UTF-8 -*-

filepath='D:/data.txt' #文件路径

f = open(filepath, "r")
content=""
try:
    while True:
        line = f.readline()
        if not line:
            break
        content+=line
finally:
    f.close()
    print content

(4)一次读取所有的行

# -*- coding: UTF-8 -*-

filepath='D:/data.txt' #文件路径

with open(filepath, "r") as f:
    txt_list = f.readlines()

for i in txt_list:
    print i,

2、写文件

# -*- coding: UTF-8 -*-

filepath='D:/data1.txt' #文件路径

with open(filepath, "w") as f: #w会覆盖原来的文件,a会在文件末尾追加
    f.write('1234')

二、连接Mysql数据库

1、连接

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

DB_URL='localhost'
USER_NAME='root'
PASSWD='1234'
DB_NAME='test'

# 打开数据库连接
db = MySQLdb.connect(DB_URL,USER_NAME,PASSWD,DB_NAME)

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取一条数据库。
data = cursor.fetchone()

print "Database version : %s " % data

# 关闭数据库连接
db.close()

2、创建表

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

3、插入

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # Rollback in case there is any error
   db.rollback()

# 关闭数据库连接
db.close()

4、查询

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      # 打印结果
      print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
             (fname, lname, age, sex, income )
except:
   print "Error: unable to fecth data"

# 关闭数据库连接
db.close()

5、更新

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
                          WHERE SEX = '%c'" % ('M')
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

# 关闭数据库连接
db.close()

三、Socket

1、服务器

from socket import *
from time import ctime

HOST = ''
PORT = 21568
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while True:
    print 'waiting for connection...'
    tcpCliSock, addr = tcpSerSock.accept()  
    print '...connected from:', addr

    while True:
        try:
            data = tcpCliSock.recv(BUFSIZ)  
            print '<', data
            tcpCliSock.send('[%s] %s' % (ctime(), data))  
        except:
            print 'disconnect from:', addr
            tcpCliSock.close()  
            break
tcpSerSock.close()

2、客户端

from socket import *

HOST = 'localhost'
PORT = 21568
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)  

try:
    while True:
        data = raw_input('>')
        if data == 'close':
            break
        if not data:
            continue
        tcpCliSock.send(data)  
        data = tcpCliSock.recv(BUFSIZ)  
        print data
except:
    tcpCliSock.close()  

四、多线程

import time, threading

# 新线程执行的代码:
def loop():
    print 'thread %s is running...' % threading.current_thread().name
    n = 0
    while n < 5:
        n = n + 1
        print 'thread %s >>> %s' % (threading.current_thread().name, n)
        time.sleep(1)
    print 'thread %s ended.' % threading.current_thread().name

print 'thread %s is running...' % threading.current_thread().name
t = threading.Thread(target=loop, name='LoopThread')
t.start()
t.join()
print 'thread %s ended.' % threading.current_thread().name

还请大家积极补充!