如果使用的是较新版本的Mac系统并及时更新,就应该已经安装了Python 3。要检查是否已经安装,可以在终端输入:python -V(注意是大写的V,因为Python语言大小写非常敏感),如果版本为3.X,就说明系统中已经安装了Python 3,而不需要自己再安装,如果不是,可以按照这个安装一遍
我的是安装的python2,升级到python3需要在终端输入:brew upgrade python
安装完3.0之后,终端给的切换指令:
Ifyou need Homebrew's Python 2, `brew install python@2`.
注意:如果系统上已经存在Python 2 ,/usr/bin/python 并不会改变,同时Python 3 将python3的形式存在,同样的,Python3 的 IDLE 以idle3 的形式存在。
执行Python语句
终端输入:python3 pack.py
以下是我遇到的问题及解决方法:
问题1:执行重签名指令,重签名失败 ==>iPhone Developer: xxx (xxx): ambiguous (matches "iPhoneDeveloper: xxx)
解决:出现原因:钥匙串中有两个一摸一样的证书,删除一个,
问题2:** EXPORT FAILED**
打包成功,导出错误:因为推送需要描述文件,而使用这个打包不能使用Xcode自动生成的描述文件,需要在开发者账号中创建好并下载安装到Xcode,然后在导出的plist中做出修改:DistributionSummary.plist 和 ExportOptions.plist 是Xcode打包之后生成的那个,可以拿来直接用,如果自动创建了描述文件,就需要在ExportOptions.plis中添加provisioningProfiles字典,在字典中添加键值对,其中,key和bundleid一样 value和描述文件的名字一样。
问题3:IndentationError: expected an indented block
解决:说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行。
注意:在Python中有冒号的下一行往往要缩进,该缩进就缩进
问题4:ModuleNotFoundError: No module named 'xlrd'
解决:该错误是因为Excel需要单独的模块支持,所以需要安装xlrd模块,
Python3可以在命令提示符中输入:pip3 install xlrd
Python2直接输入:pip install xlrd
问题5:ModuleNotFoundError: No module named 'tkMessageBox'
解决:
很有可能是因为找到的代码是python2.x的,然而却把它放在python3.x的环境下跑。其实上面的Tkinter库在python3里是tkinter,只是首字母变小写了,但是import语句是对大小写敏感的!
import tkMessageBox 改成from tkinter import messagebox #对应着tkinter文件夹底下的messagebox.py
则可以写成messagebox.showinfo("title","hello world")
问题6:NameError: name 'xrang' is not defined
解决:将代码中for i in xrang(0, lines): 改成 for i in rang(0, lines):;
问题7:创建图形化界面遇到问题:SyntaxError:invalid syntax
解决:root= tk.Tk()
问题8:ModuleNotFoundError: No module named'tkFileDialog'
在顶部引入importtkinter as tk
问题9:NameError:name 'Entry' is not defined
解决:在Entry前面加上tk.,创建的时候使用tk.Entry进行创建
问题10:NameError: name 'StringVar' is notdefined
解决:在顶部引入tkinter即,from tkinter import *
问题11:AttributeError: module 'os' has noattribute 'startfile'
在 Windows 系统上,Python3.X 有一个os.startfile函数,用于模拟双击一个文件的操作
这一操作在非 Windows 系统上不受支持,但是采用 OS X 命令行中实现的open命令来实现类似的效果
# Win32
import os
os.startfile(filename)
# OS X
import subprocess
subprocess.call(["open", filename])
后者实现的是执行open <filename>命令,列表对象会以空格隔开的形式组成最终传递给Shell 的命令,更多详细控制可以参考man open
问题12:SyntaxError: invalid syntax
解决:终端输入:sudo easy_install biplist 安装python下的plist库--biplist
问题13:AttributeError: module 'os' has noattribute 'quit'
解决:python交互界面的退出
import sys
sys.exit()
问题14:error: exportArchive: "XXXX.app" requires aprovisioning profile with the Push Notifications and App Groups features.
解决:在Xcode上换成企业版的BundleID和 Team再打包就可以了
问题15:ModuleNotFoundError:No module named 'cv2'
解决:终端输入:pip install opencv 而不是在终端中查找cv2