Mac终端运行.py文件

Mac终端运行.py文件,分3步:

申明环境变量,在.py文件中第一行写入如下语句:

#!/usr/bin/python
注意:一般情况下,python二进制命令文件都是这个路径,如果不是,要修改.

赋权:在Mac终端中,先进入文件保存路径,再输入如下命令:

chmod +x 文件名.py

运行.py文件,输入如下命令:

./文件名.py

例如:

路径/Users/runyi/Desktop下有文件rb.py,用于获取当前螺纹钢期货2101合约价格.顺序操作如下:
  1. 第一行加入环境变量申明:
    #!/usr/bin/python
    
    import requests
    import re
    def get_price():
      url = 'http://futsse.eastmoney.com/static/113_rb2101_mx/11?callbackName=zz&cb=zz&_=1595029466852'
      headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}
    
      r = requests.get(url,headers=headers)
      patt = re.compile(r'"p":(.*?),"uid"')
      a = patt.search(r.text)
      print('当前螺纹钢2101的价格是: ',a.group(1))
    
    if __name__ == '__main__':
      get_price()
  2. 赋权:终端输入命令:cd /Users/runyi/Desktopchmod +x rb.py
  3. 运行文件:./rb.py
    1. 解码报错:SyntaxError: Non-ASCII character '\xe5' in file ./rb.py on line 12, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
    2. rb.py第二行加入解码申明:# coding=utf-8
    3. 再次运行:./rb.py,再次报错:没有requests模块
    4. rb.py第一行#!/usr/bin/python修改为#!/usr/bin/env python,再次运行./rb.py
    5. 成功! 

小结:

主要涉及到2个问题,环境变量和解码,解码好说,加入coding=utf-8就可以,环境变量的设定稍微复杂点,光指定解释器为python还不行,必须是全局环境变量python,即env python.说这么多,其实照着撸一遍,见招拆招就能成功.