python入门-从安装环境配置(Anaconda)到做一个下班打卡提醒.exe小工具

最终效果:运行python打包得.exe文件,下班到点后,点击左下角开始菜单想要关机时,弹出提示打卡,选择"知道了"则程序关闭,选择"再等等"程序休眠十分钟重新运行

 

环境:window,IDE:Intellij Idea

背景:下班忘记打卡,在电脑上做个提醒的小工具,顺便摸索下python,文章和程序经历磕磕绊绊修修改改,终于-->”粗糙“出炉,后续再优化

思路:暂定为定时+弹窗(后续再一步步优化)

目录

建议跳过此步

下载安装    (建议使用Anaconda)

Anaconda

Anaconda配置

配置清华的镜像源

检测与更新

项目开始

pythonremind 项目目录

python弹窗

python定时

思路修改

安装pyHook3-监听电脑事件

安装Microsoft visual c++ 14.0,

最终版本与代码

打包.exe文件

安装 pyinstaller

打包

点击执行

查看与关闭python进程

下班成功提示!

优化-打包文件过大

Python版本降级(3.7->3.6)

安装pipenv

运行成功,大小200M缩减为11M

pipenv 使用基本命令


建议跳过此步

下载安装    (建议使用Anaconda)

下载地址:Python Releases for Windows | Python.org

朋友说2不更新了,索性直接下个最新的

环境变量中添加Python目录:

在命令提示框中(cmd) : 输入下面内容,后面是Python的安装目录。

卸载验证了下,环境在安装完成就配置好了,真方便

Anaconda

如果你的电脑中已经安装过了python的环境(我最后卸载了),它会自动检测SDK。如果没有安装,这里推荐使用Anaconda

下载地址:Free Download | Anaconda

Anaconda配置

在Anaconda的安装目录下找到Scripts文件夹并进入,然后shift右键,选择在此处打开Powershell窗口(路径上输入cmd回车),输入以下命令

python -m pip install -U pip

将pip升级到最新

pip install numpy

如果因为移动python环境位置导致pip路径不对报错
可使用python -m pip install 包名,达到一样的效果
或者卸载重装:python -m pip uninstall pip,安全下载get-pip.py到当前文件夹:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py,重新打开命令窗口执行:python get-pip.py

其他:

  • 如有No module named ‘pip错误  执行python -m ensurepip
  • python -m pip install -U pip遇到用户权限问题, python -m pip install -U pip --user

配置清华的镜像源

Anaconda默认的镜像源在国外,换成清华的镜像源,提升下载速度

建立配置文件:

  • windows下的路径为 C:\Users\你的用户名\pip\pip.ini

  • linux下的路径为 ~/.pip/pip.conf

  • 文件内容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

在之前提到的Scripts下打开命令行窗口,输入命令

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

检测与更新

conda info

conda list  可以查询现在安装了哪些库

conda update --all  把所有包进行更新,在提示是否更新的时候输入 y

建议去到环境变量的用户变量中删除了以下两个变量

  • D:\szw\az\anaconda3\Scripts
  • D:\szw\az\anaconda3

项目开始

pythonremind 项目目录

也不清楚python项目有什么规范,自己在网上扒拉创建的,后续找找看

python弹窗

import time, easygui

easygui.msgbox("别忘了打卡!打卡!!", title="提醒",ok_button="知道啦")

python定时

import time

easygui.msgbox("别忘了打卡!打卡!!", title="提醒",ok_button="知道啦")

while True:

    current_time = time.localtime(time.time())
    if((current_time.tm_hour == 17) and (current_time.tm_min == 30) and (current_time.tm_sec == 0)):
        print("Hello World");

    time.sleep(1)

定时到下班时间,弹出提示框,但仅仅是这样肯定不够的,1、到点不一定走(加班呢)2、这样还不如定个闹钟方便

思路修改

思路:if到时间+if关机前 执行-弹窗提醒

安装pyHook3-监听电脑事件

pip install pyHook3

报错了: 缺少swig支持 error: command 'swig.exe' failed: No such file or directory

下载:Download SWIG

解压,路径添加到系统变量Path里

安装Microsoft visual c++ 14.0,

下载完成直接安装:https://sn9.us/file/1445568-239446865

再次运行错误:pip is configured with locations that require TLS/SSL

直接使用 Anaconda Prompt 执行(开始菜单)

最终版本与代码

# 定时提醒
import time, easygui, sys, pythoncom
import PyHook3 as pyHook
import pyautogui as pag

# 弹出
i = 1;
def func(b):
    global i;
    i += 1;
    if b:
        # easygui.msgbox("别忘了打卡!打卡!!", title="提醒",ok_button="知道啦")
        if easygui.ccbox("别忘了打卡!打卡!!",choices=("知道啦!", "再等等/(ㄒoㄒ)/~~")):
            sys.exit(0)
        else:
            time.sleep(600);
            i = 1
            onMouseEvent

# 监听到鼠标事件调用
def onMouseEvent(event):
    if (event.MessageName == "mouse left down") and (event.MessageName != "mouse move"):
    # 因为鼠标一动就会有很多mouse move,所以把这个过滤下
        now = time.strftime('%X');
        target = "17:30:00";
        # target = "14:26:00";
        # print(target);
        # print(now < target);
        x,y = pag.position() #返回鼠标的坐标
        if (x < 40) and (y < 1079) and (y > 1040): # 鼠标坐标在左下角开始菜单
            if (now > target) and i == 1: # 首次点击生效
                func(now > target)

    return True # 为True才会正常调用,如果为False的话,此次事件被拦截

def main():
    # 创建管理器
    hm = pyHook.HookManager()
    # 监听鼠标
    hm.MouseAll = onMouseEvent
    hm.HookMouse()
    # 循环监听
    pythoncom.PumpMessages()

if __name__ == "__main__":
    main()

if到时间+if关机前(判断鼠标左键是否点击开始菜单) 执行-弹窗提醒,确定(关闭)-再等等(十分钟后重新执行)

这样,一个简陋的定时提醒就完成了,

打包.exe文件

安装 pyinstaller

pip install pyinstaller // 安装 pyinstaller

pyinstaller --version // 检查安装成功与否

打包

同级目录下执行命令:

pyinstaller -F remind.py
pyinstaller -F remind.py ––noconsole // 打包后的 exe 运行去掉弹出的命令行提示窗口

点击执行

dist 下面有一个可执行文件,和脚本相同目录下,有一个.spec 文件,该文件会告诉 pyinstaller 如何处理你的所有脚本,同时包含了命令选项。一般不用去理会这个文件

运行失败~坎坷!

卸载pyinstaller从GitHub上下载安装

pip uninstall pyinstaller

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip

重新打包,运行

查看与关闭python进程

wmic process where name="remind.exe" // 查看进程

taskkill /f /im remind.exe // 关闭进程

下班成功提示!

优化-打包文件过大

差评,几行代码打包200多m,Anaconda里内置了很多库,打包的时候打包了很多不必要的模块进去

虚拟环境里安装pyinstaller,版本太高有问题,将Python降级为3.6

Python版本降级(3.7->3.6)

3.7版本的Python降级为3.6,打开anaconda prompt:输入如下代码
conda install python=3.6

等待提示(y/n?)输入:y

等待降级过程,大约15分钟左右,会提示done

命令行输入:python
exit()

安装pipenv

安装pipenv
pip install pipenv 

选一个好目录做我们的虚拟环境,然后在该目录下:注意python版本
pipenv install --python 3.6

激活进入虚拟环境
pipenv shell

安装依赖的库
pip install PyHook3
pip install easygui
pip install pyautogui
# pip install pythoncom   
# pip install pythoncom总是time out ,由于pytoncom存在于pywin32,直接安装 pywin32即可
pip install pywin32


解决python.exe 无法找到程序入口警报
pip install numpy
pythoncom36.dll是pywin32的一个文件,位于路径Anaconda3\envs\pytorch(你的虚拟环境)\Lib\site-packages\pywin32_system32中,
而Anaconda3\envs\pytorch\Library\bin中也存在一个同名文件,
我将后者文件删除后便没有这个警报了


依赖展示
pipenv graph

打包的模块也要安装
# pip install pyinstaller 
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip

开始打包,# 文件复制到本路径直接执行
pyinstaller -F remind.py ––noconsole
# pyinstaller -D remind.py 

后来发现打包成功文件也变小了,还是不能运行,找了很久是pythoncom的问题,多次搜寻后找到解决办法,打包执行以下命令

pyinstaller -F -p D:\szw\az\anaconda3\Lib\site-packages\pythoncom.py remind.py ––noconsole

-p 设置导入路径,可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径(导的我本地包路径,因为我本地跑正常)后又卸载重装了虚拟环境,执行成功(补充:末尾的注释删除了)

运行成功,大小200M缩减为11M

pipenv 使用基本命令

  • 创建pipenv  pipenv
  • 启动pipenv  pipenv shell(为存在虚拟环境可自动创建)
  • 退出pipenv  exit
  • 查找所有安装包  piplist
  • 环境内包的依赖展示  pipenv graph
  • 查找虚拟环境的路径  pipenv --venv
  • 卸载安装包  pipenv uninstall
  • 删除当前虚拟环境       pipenv --rm 
  • 显示当前依赖关系图        pipenv grap

python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包

  • pip freeze > requirements.txt  会将环境中的依赖包全都加入
  • pip install -r requirements.txt   创建一个新的环境可以导入

开机启动

代码地址:https://download.csdn.net/download/qq_44695727/12399741

更多方法:

自动化 selenium 库安装使用Python/Java

python爬虫使用 requests-html爬取网页信息以及常用方法

Python爬虫之selenium(全套操作)常用的定位元素与常用方法

Python -- Selenium获取请求的接口数据信息/浏览器Network的请求和响应

Python一些常用方法-整理

Python -- Selenium开启开发者工具(F12)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑶山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值