Files
app_package/setup.py
2025-11-25 11:41:56 +08:00

105 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from setuptools import setup, find_packages
import sys
package_name = 'hertz_studio_django_xxx'
# 读取README文件内容
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
# 读取requirements文件
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 verify_machine_license():
"""验证机器码"""
import platform
import uuid
import hashlib
print("\n" + "="*60)
print("欢迎使用 Hertz System Xxx!")
print("="*60)
print("本软件需要机器码验证才能安装。")
print("请联系作者获取安装权限hertz studio(563161210@qq.com)")
print("="*60)
# 获取系统信息
system_info = f"{platform.platform()}-{platform.machine()}-{uuid.getnode()}"
machine_id = 'HERTZ_STUDIO_'+hashlib.sha256(system_info.encode()).hexdigest()[:16].upper()
print(f"您的机器码: {machine_id},当前安装的包名: {package_name}")
print("请将此机器码发送给作者进行注册。")
# 请求验证机器码
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)
else:
print("=" * 60)
print("机器码验证失败!请联系作者获取安装权限。")
print("=" * 60)
sys.exit(1)
# 在安装前验证机器码
if 'install' in sys.argv or 'bdist_wheel' in sys.argv or 'sdist' in sys.argv:
verify_machine_license()
setup(
name=package_name, # PyPI上的包名
version="1.0.1", # 版本号
author="yang kunhao", # 作者名
author_email="563161210@qq.com", # 作者邮箱
description="一个功能强大的Django验证码应用", # 简短描述
long_description=long_description,
long_description_content_type="text/markdown",
url="http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx", # 项目地址
packages=find_packages(include=[f"{package_name}*"]), # 自动发现并同时打包两个包
include_package_data=True, # 包含MANIFEST.in中定义的文件
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Framework :: Django",
"Framework :: Django :: 3.0",
"Framework :: Django :: 3.1",
"Framework :: Django :: 3.2",
"Framework :: Django :: 4.0",
"Framework :: Django :: 4.1",
"Framework :: Django :: 4.2",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Software Development :: Libraries :: Python Modules",
],
license="MIT", # 使用 SPDX 许可证标识符
python_requires=">=3.10", # Python版本要求
install_requires=read_requirements(), # 依赖包
keywords="django xxx verification security", # 关键词
project_urls={
"Bug Reports": "http://hzgit.hzsystems.cn/hertz_studio_django/hertz_studio_django_xxx/issues",
"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",
},
)