双击运行Python程序时,使用虚拟环境的解释器执行

原文地址 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),建好后如图

双击运行Python程序时,使用虚拟环境的解释器执行_第1张图片

激活虚拟环境后,在虚拟环境中安装 Requests库,命令及安装结果如下

pip install requests

双击运行Python程序时,使用虚拟环境的解释器执行_第2张图片

在该目录创建 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('按任意键离开该窗口')

双击运行Python程序时,使用虚拟环境的解释器执行_第3张图片 

想必您已经猜到,第一行内容 #!venv/Scripts/python.exe 为 虚拟环境中的Python解释器路径【在Linux和MacOS中为#!venv/bin/python3】(该路径为相对路径,若您暂不了解Python相对路径,请参考https://www.cyberlight.xyz/passage/absolute-path)

此时我们进行测试,鼠标双击 test.py,得到如下内容

双击运行Python程序时,使用虚拟环境的解释器执行_第4张图片

py程序已经通过虚拟环境的解释器执行,成功返回百度html源码~

该程序第一行 #!venv/Scripts/python.exe 设置了虚拟环境的解释器路径,极为重要!若无此行,双击py程序将报错闪退(因为找不到对应的py模块)。

PS:在Linux中可通过该方法实现双击运行py程序

 

以上是该笔记的全部内容,感谢阅读!

你可能感兴趣的:(Python)