mac下升级python2到python3

背景知识:
1、mac下会有两个python目录:
/System/Library/Frameworks/Python.framework/
/Library/Frameworks/Python.framework/
第一个是系统默认安装的python目录
第二个是我们自己安装的python所在的目录
2、Python.framework/Versions目录下面保存了所有已安装的python版本
3、Python.framework/Versions/Current是一个软链接,可以用ls -l命令查看。链接到Versions下的某一个版本,表示当前系统在使用的python版本。

综上所述,升级的思路就是:
1、下载并安装新版本的python
2、修改/Library/Frameworks/Python.framework/Versions/Current的链接到新安装的版本,比如,我新安装了3.5版本,要使用3.5版本:
ln -s ./3.5 Current
3、修改相关环境变量,比如~/.bash_profile文件

PATH=”/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}”
export PATH

4、修改python可执行文件的软链接,使用which python目录,查看使用的python bin文件的目录(我的系统里,/usr/bin和/usr/local/bin下都有python的bin文件)。
$ which python
/usr/local/bin/python
$ cd /usr/local/bin/

#列出所有的python相关可执行文件,把下面的输出结果,复制一份保存出来。
$ ls -l python*

#删除旧链接
rm python
rm python-32
rm python-config

创建新链接,这里可以使用前面提到的Current链接,不要直接写死版本号,这样的话,以后再升级python,只改一下Current的软链接就可以了。不过我下面的命令里有写死python3.5,比如升级到3.6的话,Current不用改,但是python3.5要改成python3.6,所以使用Current的意义也不大了。不过每个版本内部还有一个类型 python3 -> python3.5这样的软链接,要使用python3就可以了。我没有使用这个,是觉得一层层的链接搞的层级太深。
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5 python
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5-32 python-32
ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python3.5m-config python-config

这样就升级完成了,命令行输入python看到输出版本号就没问题了。
$ python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

映美 312K打印国税发票时的设置

1、将打印机的挡板位置放到15mm处。
2、在 税控发票开票软件(税控盘版) 软件的发票管理-打印格式设计-发票打印格式设计里,找到增普票,选中,点查看,在新页面里,点设置,将左边距调成-167,上边距设置成-48,打印机选成312K这个打印机。
3、找一张A4纸,裁成和发票一样大小,在打印格式设计里将这个测试的发票打印在这个裁好的纸上。
4、用这个纸和真实发票叠起来,迎着灯光,对一下,看位置合适不。
5、如果合适,就可以用来打真实发票了。

注意:
1、上面第2步设置的时候,一定要选对打印机,没选对打印机,设置了页面边距,出来效果也可能不对。
2、不要用真的发票纸打测试页,也不要把真实的发票数据打到A4纸上。
3、打印机要退纸,先点一下右边的脱机按钮,再点一下进/退纸按钮,纸就出来了。
4、打印机上纸的时候,一或两张纸就够了,不要一次上一沓。纸上多了,打出来全是模糊的一行黑条。

临时清除chrome的DNS缓存

chrome为提高访问响应速度,会缓存DNS解析的结果,避免比次访问域名都需要请求DNS服务器解析DNS。这同时也会造成域名解析发生变化时,DNS不能及时更新的困扰。临时清除缓存的访问为:
1、在chome地址栏输入:chrome://net-internals/#dns,回车
2、打开的页面,右上角,有一个下拉三角,先后点击Clear cache 和 Flush sockets 两项就可以清除缓存了。
可以参考知乎这篇文章:http://www.zhihu.com/question/19721279

swift osx 使用代码给窗口上增加控件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var helloButton : NSButton = NSButton()
override func windowDidLoad() {
       
        super.windowDidLoad()

        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
        let frame = NSRect(x: 10, y: 10, width: 200, height: 100)
        let button = NSButton(frame: frame)
        button.title = "Click me!"
       
        button.translatesAutoresizingMaskIntoConstraints = false
       
        self.window?.contentView?.addSubview(button)
       
        let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("|-[button]-|", options: .AlignAllBaseline, metrics: nil, views: ["button":button])
        NSLayoutConstraint.activateConstraints(horizontalConstraints)
       
        let verticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-[button]-|", options: .AlignAllBaseline, metrics: nil, views: ["button":button])
        NSLayoutConstraint.activateConstraints(verticalConstraints)
       
        self.helloButton = button
       
    }

如果self.window=nil,则需要看下window的Outlets的连接是不是正确。