diff --git a/get_machine_code.py b/get_machine_code.py new file mode 100644 index 0000000..b4b2d42 --- /dev/null +++ b/get_machine_code.py @@ -0,0 +1,18 @@ +import platform +import uuid +import hashlib + + +def get_machine_id() -> str: + """生成机器码。 + + 根据当前系统信息(平台、架构、MAC地址)生成唯一机器码, + 使用 SHA256 取前16位并转大写,前缀为 HERTZ_STUDIO_。 + """ + system_info = f"{platform.platform()}-{platform.machine()}-{uuid.getnode()}" + return 'HERTZ_STUDIO_' + hashlib.sha256(system_info.encode()).hexdigest()[:16].upper() + + +if __name__ == "__main__": + machine_code = get_machine_id() + print(f"您的机器码是: {machine_code}") \ No newline at end of file diff --git a/setup.py b/setup.py index 995a69d..533ab53 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,5 @@ from setuptools import setup, find_packages import sys -import platform -import uuid -import hashlib -import requests package_name = 'hertz_studio_django_xxx' @@ -17,23 +13,15 @@ def read_requirements(): with open("requirements.txt", "r", encoding="utf-8") as f: return [line.strip() for line in f if line.strip() and not line.startswith("#")] -# 机器码验证请求 -def request_verify_machine_code(package_name, machine_code): - """请求验证机器码""" - url = "http://activate.hzsystems.cn/api/activate_machine" - data = {"package_name": package_name, "machine_code": machine_code} - try: - response = requests.post(url, json=data, timeout=10) - return response.json() - except requests.RequestException as e: - print(f"机器码验证请求失败: {e}") - return None - # 机器码验证功能 def verify_machine_license(): """验证机器码""" + import platform + import uuid + import hashlib + print("\n" + "="*60) - print("欢迎使用 Hertz System xxx!") + print("欢迎使用 Hertz System Xxx!") print("="*60) print("本软件需要机器码验证才能安装。") print("请联系作者获取安装权限:hertz studio(563161210@qq.com)") @@ -47,8 +35,18 @@ def verify_machine_license(): print("请将此机器码发送给作者进行注册。") # 请求验证机器码 - response = request_verify_machine_code(package_name, machine_id) - if response.get('success') == True: + import requests + url = "http://activate.hzsystems.cn/api/activate_machine" + data = {"package_name": package_name, "machine_code": machine_id} + try: + response = requests.post(url, json=data, timeout=10) + result = response.json() + success = result.get('success') == True + except requests.RequestException as e: + print(f"机器码验证请求失败: {e}") + success = False + + if success: print("=" * 60) print("机器码验证成功!") print("=" * 60) @@ -104,4 +102,4 @@ setup( "Source": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx", "Documentation": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx#readme", }, -) +) \ No newline at end of file diff --git a/使用手册.md b/使用手册.md index 2567038..7483f1a 100644 --- a/使用手册.md +++ b/使用手册.md @@ -1,4 +1,10 @@ -# APP打包步骤 +# APP打包教程 + + + +请先运行get_license.py脚本获取机器码!!! +并将机器码交给机器码管理人员负责授权!!! + @@ -107,8 +113,29 @@ project_urls={ 完成上述的修改后,在终端的项目输入以下命令并回车进行打包 -``` -python setup.py sdist +```bash +python setup.py sdist bdist_wheel ``` -运行完成后会在dist目录下生成一个打包过后的文件 +运行完成后会在dist目录下生成两个文件,如: + +hertz_studio_django_yolo-1.0.1.tar.gz和hertz_studio_django_yolo-1.0.1-py3-none-any.whl + + + + + +## 七、测试pip下载 + +测试时请将下面的hertz_studio_django_yolo-1.0.1-py3-none-any.whl换成你自己生成的文件 + +```bash +pip install dist/hertz_studio_django_yolo-1.0.1-py3-none-any.whl +``` + + + + + +## 八、将生成的两个文件交给仓库源管理人员上传 +