返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python脚本如何设置试用期
  • 360
分享到

详解Python脚本如何设置试用期

2024-04-02 19:04:59 360人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、获取网络时间2、上锁3、编译 pyd程序员可能会私下给别人开发一些工具,但是通常要给别人试用一下,但是万一别人试用后,把你拉黑,那就白忙活了。今天就分享如何在 python

程序员可能会私下给别人开发一些工具,但是通常要给别人试用一下,但是万一别人试用后,把你拉黑,那就白忙活了。今天就分享如何在 python 里设置有效期。

为了设置有效期,首先要获取当前时间,如果获取本地时间,那么别人可以通过修改操作系统的时间来一直保持有效。最好的办法就是获取网络时间。你说他断网怎么办?

如果断网,有两种方法,要么不给用,要么再取本地时间。

1、获取网络时间

如何获取网络时间呢,可以从 Http 返回的 Header 里获取时间,由于这个时间是 GMT 格式的 UTC 时间,我们还需要转为本地时间,下面的脚本都考虑到了,均采用标准库。

from datetime import datetime
from urllib.request import urlopen
import time
import ssl
import sys

ssl._create_default_https_context = ssl._create_unverified_context


def get_network_time():
    url = "https://www.baidu.com"
    try:
        with urlopen(url) as res:
            utctime = gmtstr_to_localtime(res.getheader("Date"))
            return datetime_from_utc_to_local(utctime)
    except Exception as e:
        print("请检查网络设置")
        sys.exit()


def gmtstr_to_localtime(gmtstr) -> datetime:
    return datetime.strptime(gmtstr, "%a, %d %b %Y %H:%M:%S GMT")


def datetime_from_utc_to_local(utc_datetime):
    now_timestamp = time.time()
    offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(
        now_timestamp
    )
    return utc_datetime + offset


if __name__ == "__main__":
    print(get_network_time())
    # Output:
    # 2022-07-19 06:39:12

2、上锁

这一步很简单,一个日期判断就搞定了:

def lock():
    now = get_network_time()
    end_date = datetime(2022, 8, 26)
    if now > end_date:
        print("试用已到期")
        sys.exit()

然后把上面获取网络时间的代码及 lock 函数均放在 lock.py 文件里,在我们的核心模块 core_work.py 中导入:

from lock import lock

def somefunc():
    lock()
    # do your work

在需要 lock() 的地方调用下 lock 函数就可以了。

你可能还需要一个 startup.py 脚本来启动整个程序:

from core_work import main
main()

3、编译 pyd

不编译的话,或者编译为 pyc 的话,上面的工作等于没做,pyc 可以直接反编译成 py 文件,连命名符号都不变。

编译的话,只需要需要把获取网络时间的代码,lock 函数的定义及调用 lock 的代码都编译成 pyd,本例子中就是 lock.py 和 core_work.py 编译成 lock.pyd 和 core_work.pyd,然后把源代码 lock.py 和 core_work.py 删除,其实就可以发布了,想破解只能反编译 pyd 文件,得到的是汇编代码,这个门槛已经拒绝了大多数的人。

pyd 的编译流程是 .py -> .c -> pyd,也就是说 pyd 是从 c 语言编译的,除了隐藏源代码之外,速度也会变快一些。

如果不放心的话,那就 pyinstall -k key startup.py 再加密打包一下,key 就是加密的密码,如果在 pyd 文件 import 了第三方库,那么要在 spec 文件中填写 hiddenimports。

如何编译 pyd 呢?代码如下:

from distutils.core import setup
from Cython.Build import cythonize
files = ["lock.py", "core_work.py"]

setup(
    name="yourapp",
    ext_modules=cythonize(files),
    script_args=["build_ext", "-b", "./build", "-t", "./build/temp"],
)

运行之前你要 pip install cython。

然后在 build 文件夹就可以看到编译好的 pyd 文件,然后把他们移动到源代码的位置,重命名为 xxx.pyd 就可以了。

到此这篇关于详解Python脚本如何设置试用期的文章就介绍到这了,更多相关Python脚本试用期内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解Python脚本如何设置试用期

本文链接: https://www.lsjlt.com/news/119433.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解Python脚本如何设置试用期
    目录1、获取网络时间2、上锁3、编译 pyd程序员可能会私下给别人开发一些工具,但是通常要给别人试用一下,但是万一别人试用后,把你拉黑,那就白忙活了。今天就分享如何在 Python ...
    99+
    2024-04-02
  • python中如何调试脚本
    小编给大家分享一下python中如何调试脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!调试脚本我们可以在 模块的帮助下在 Python 脚本中设置断点。请按照...
    99+
    2023-06-27
  • php中如何设置脚本时间
    本篇内容介绍了“php中如何设置脚本时间”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP脚本是Web开发中最常用的脚本之一,用于处理We...
    99+
    2023-07-05
  • php如何设置脚本执行时间
    小编给大家分享一下php如何设置脚本执行时间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!设置方法:1、php.ini中,查找并设置“max_execution_...
    99+
    2023-06-15
  • linux如何设置脚本全局生效
    要使脚本在 Linux 中全局生效,您可以按照以下步骤操作:1. 将脚本复制到一个标准路径下,例如 `/usr/local/bin/...
    99+
    2023-09-15
    linux
  • 如何设置定时执行php脚本
    这篇文章主要介绍“如何设置定时执行php脚本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何设置定时执行php脚本”文章能帮助大家解决问题。使用CrontabCrontab是一个类Unix系统下的...
    99+
    2023-07-06
  • 如何理解Shell脚本中的日期运算
    本篇内容主要讲解“如何理解Shell脚本中的日期运算”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Shell脚本中的日期运算”吧!日期加减秒增减[roo...
    99+
    2024-04-02
  • C#如何调用python脚本
    目录C#调用python脚本方式一方式二方式三方式四方式五C#调用python脚本 在平常工程项目开发过程中常常会涉及到机器学习、深度学习算法方面的开发任务,但是受限于程序设计语言本...
    99+
    2024-04-02
  • 如何使用vbs脚本自动修改ip设置
    本篇内容主要讲解“如何使用vbs脚本自动修改ip设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用vbs脚本自动修改ip设置”吧!代码如下:@Echo OffTITLE  编程...
    99+
    2023-06-09
  • 如何给windows设置定时任务并运行python脚本
    目录1. 创建定时任务1.1 计划任务2.2 基本任务2.3 命名2.4 执行时间2.5执行时间2.6 启动程序2.7 选择启动程序2.8完成3. 传送门4. 完工自己用python...
    99+
    2024-04-02
  • 本地存储localStorage设置过期时间示例详解
    目录思考实现思路代码实现代码测试思考 在我们使用cookie的时候是可以设置有效期的,但是localStorage本身是没有该机制的,只能人为的手动删除,否则会一直存放在浏览器当中...
    99+
    2023-01-15
    本地存储localStorage设置过期时间 localStorage设置过期时间
  • 如何进行Python脚本的解析
    如何进行Python脚本的解析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。脚本是使用一种特定的描述性语言,因为Python脚本在执行时多了一道翻译的过程,所以...
    99+
    2023-06-17
  • python如何自动化测试selenium执行js脚本
    小编给大家分享一下python如何自动化测试selenium执行js脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!WebDriver有2个方法执行Java S...
    99+
    2023-06-25
  • Python学习之shell脚本的使用详解
    目录一、sh是什么二、使用步骤1.安装2.使用示例3.使用sh执行命令4.关键字参数5.查找命令6.Baking参数一、sh是什么 SH是一个独特的子进程包装器,可将您的系统程序动态...
    99+
    2023-05-17
    Python使用shell脚本 Python shell脚本 Python shell
  • Navicat Premium15如何实现无限试用脚本
    这篇文章主要介绍Navicat Premium15如何实现无限试用脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下所示:@echo off   ec...
    99+
    2024-04-02
  • 如何利用 BATS 测试 Bash 脚本和库
    本篇内容介绍了“如何利用 BATS 测试 Bash 脚本和库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Bash 自动测试系统可以使 Ba...
    99+
    2023-06-15
  • shell中如何调用python脚本
    要在shell中调用Python脚本,可以使用以下命令:```python script.py```其中,`python`是Pyth...
    99+
    2023-10-10
    shell python
  • Python脚本如何读取Consul配置信息
    这篇文章给大家分享的是有关Python脚本如何读取Consul配置信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先来说一下背景,为什么要写脚本去读Consul的配置信息呢?Consul是啥呢?consul是g...
    99+
    2023-06-25
  • 如何使用Iiscnfg.vbs IIS配置脚本
    这篇文章主要讲解了“如何使用Iiscnfg.vbs IIS配置脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Iiscnfg.vbs IIS配置脚本”吧!导入和导出本地或远程计算机...
    99+
    2023-06-08
  • Python自动化测试之登录脚本如何实现
    今天小编给大家分享一下Python自动化测试之登录脚本如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。环境准备前提已经...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作