原文地址 https://www.cyberlight.xyz/passage/python3-double-click
由于业务需求,需要鼠标双击py文件后自动运行。为了使代码拥有更强可移植性,项目使用了虚拟环境。于是产生了问题,如何在 鼠标双击py文件后,使用虚拟环境的python解释器执行,而不是系统默认解释器?
这篇笔记使用 Windows 记录,同样适用于 Linux 与 MacOS。
笔记以使用 Requests库获取百度html源码 为例,说明方法,以下为实现过程:
环境:Windows 10,Python 3.8.1
首先创建虚拟环境(虚拟环境创建及激活笔记见https://www.cyberlight.xyz/passage/python3-virtualenv),建好后如图
激活虚拟环境后,在虚拟环境中安装 Requests库,命令及安装结果如下
pip install requests
在该目录创建 test.py 程序,内容及创建图如下
#!venv/Scripts/python.exe
import requests
html = requests.get('https://www.baidu.com/')
html.encoding = 'utf-8' #这一行是将编码转为utf-8否则中文会显示乱码。
print(html.text)
input('按任意键离开该窗口')
想必您已经猜到,第一行内容 #!venv/Scripts/python.exe 为 虚拟环境中的Python解释器路径【在Linux和MacOS中为#!venv/bin/python3】(该路径为相对路径,若您暂不了解Python相对路径,请参考https://www.cyberlight.xyz/passage/absolute-path)
此时我们进行测试,鼠标双击 test.py,得到如下内容
py程序已经通过虚拟环境的解释器执行,成功返回百度html源码~
该程序第一行 #!venv/Scripts/python.exe 设置了虚拟环境的解释器路径,极为重要!若无此行,双击py程序将报错闪退(因为找不到对应的py模块)。
PS:在Linux中可通过该方法实现双击运行py程序
以上是该笔记的全部内容,感谢阅读!