将python程序编译为exe可执行文件

Python如何把脚本编译成可执行exe文件 学Python那么久了,才知道自己不会把脚本编译成可执行exe文件。这是昨天以为小伙伴告诉我的,为了帮她解决这个问题, 我今天特意写了这一篇文章。相信肯定不止我的小伙伴不会,也许某个角落也藏着一个你。 首先,通过Python Fire可以快速便捷地生成命令行工具(参见《Python Fire的速成教程 A Crash Course to Python Fire》),但在Windows系统中,你必须通过类似"Python cmd.py"的命令来执行,而不能直接调用命令行工具,这显然是不太方便的。 为了能让 阅读详情
AI摘要

本文介绍使用PyInstaller将Python程序编译为exe可执行文件的详细步骤,包括安装PyInstaller、编写脚本、生成可执行文件、查找文件及运行等,还提及常用选项和注意事项,如路径、依赖项和环境变量问题,以便在无Python环境系统上运行程序。

将Python程序编译为exe可执行文件,可以使用PyInstaller工具。以下是详细步骤:

1. 安装PyInstaller

首先,确保你已经安装了Python环境。然后,使用pip安装PyInstaller:

pip install pyinstaller 

2. 编写你的Python脚本

假设你的Python脚本名为my_script.py ,并且位于某个目录中。

3. 使用PyInstaller生成可执行文件

打开命令行窗口(Windows下可以使用CMD或PowerShell),导航到你的Python脚本所在的目录,然后运行以下命令:

pyinstaller --onefile my_script.py 

这里的--onefile选项表示将所有内容打包成一个单独的exe文件。

4. 查找生成的可执行文件

执行完上述命令后,你会在当前目录下看到一个新的文件夹dist,里面包含生成的exe文件(例如my_script.exe )。

5. 运行可执行文件

你现在可以双击生成的exe文件来运行你的Python程序,而无需安装Python环境。

其他常用选项

  • -w: 生成一个窗口化应用程序(不显示命令行窗口)。
  • -i <icon-file>: 添加自定义图标文件。
  • -n <name>: 指定生成的可执行文件的名称。

例如,如果你想生成一个窗口化应用程序并添加一个图标,可以使用以下命令:

pyinstaller --onefile --windowed --icon=my_icon.ico my_script.py 

注意事项

  1. 路径问题: 确保你在命令行中导航到正确的目录,或者使用绝对路径来指定你的Python脚本文件。
  2. 依赖项: 如果你的Python脚本有其他依赖项(如外部库),确保这些依赖项已经安装在你的Python环境中。
  3. 环境变量: 确保你的系统环境变量中已经包含了Python和pip的路径。

通过以上步骤,你应该能够成功地将你的Python程序编译为一个exe可执行文件,并在没有Python环境的系统上运行。

python文件转为可执行文件(.exe)的详细步骤 本文详细介绍了如何从零开始把python文件打包成为可执行文件(.exe)。 阅读详情

相关推荐

Python程序编译与反编译

Python 通过pyinstaller 打包编译成exe可执行文件 ,反编译exe文件。

qq_44894994的博客 4547

将Python文件编译为exe可执行程序

本篇介绍了用PyInstaller编译Python文件为exe程序的方法。介绍了PyInstaller的安装、常用参数,编译方法和“版本信息文件”的组成。详细介绍了“版本信息文件”中各项的意义,并与编译后的exe文件属性详细信息进行对照,为读者编写“版本信息文件”和将Python文件编译为exe文件提供了案例。

hz_zhangrl的博客 2万+

【nuitka】编译python程序

python-nuitka:编译python程序使用的库简介安装windows下使用示例常用参数优缺点 使用的库 nuitka 简介 nuitka可以将python代码转化为C++代码,然后进行编译,生成exe文件 安装 pip install nuitka windows下使用示例 如我要将pytable.py文件编译为exe文件 首先在命令行中cd到所在目录,输入nuitka pytable....

weixin_44505587的博客 4654

python程序编译成exe可执行文件

python程序编译成exe可执行文件 PyInstaller

田振靓的博客 1975

python如何将程序编译成exe

将Python代码编译成可执行文件是一个复杂的过程,涉及到很多因素和决定。在进行这个过程之前,你需要仔细考虑你的需求和你想要解决的问题,然后选择最适合你需求的工具和方法。

这家伙很懒,什么都没有留下 3180

从Python源代码编写到最终发布,一般需要将代码打包成可执行文件,而exe是Windows平台下最常见的可执行文件格式之一。本文将介绍如何使用Python编写...

本文简要介绍了使用pyinstaller库将Python代码编译成Windows平台下的exe可执行文件的方法,不过需要注意的是,如果Python程序需要使用到系统级别的库,例如win32api、pywin32之类的,那么需要在安装pyinstaller之前先安装这些系统级别的库。但是,如果你的Python脚本中依赖了其他的Python模块,那么pyinstaller默认是不会自动将这些模块打包进可执行文件中的。在打包完成后,可以运行生成的exe文件来测试是否能够正常运行。

. 564

python编译成手机可用程序_Python 程序打包成 exe 可执行文件

可执行文件:对于非码农用户或者一些小白用户,你让他装个 Python 同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉他即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows, Linux, Mac,…)。.py 和.pyc 都比较简单,Python 本身就可以搞定。将 Python 脚本打包成可执行文件有多种方式。Py...

weixin_39616367的博客 4958

将Python脚本编译为可执行文件(exe)的方法

pyinstaller是一个流行的Python库,可以将Python脚本打包为独立的可执行文件,它会将Python解释器和所有依赖项捆绑在一起,从而使得其他人可以在没有Python环境的情况下运行您的代码。在某些情况下,您可能希望将Python脚本转换为可执行文件,这样其他人就可以在没有安装Python解释器的情况下运行您的代码。只需按照上述步骤安装pyinstaller库并使用相应的命令编译您的脚本即可。现在,您可以将这个可执行文件发送给其他人,他们可以在没有安装Python解释器的情况下运行您的脚本。

YOLOv6666的博客 529

Python程序编译成exe可执行文件

最近项目上有需要将Python程序编译成可执行文件。 首先需要安装pyinstaller工具 pip install pyinstaller -i https://mirrors.aliyun.com/pypi/simple 安装完毕后,进入程序的.py文件所在文件夹 执行: pyinstaller -F -D -w main.py 这里main.py是我的项目入口的名字,根据需要修改成自己的...

weixin_43820764的博客 1334

python生成exe文件与exe文件的反编译

(3).在Prompt或cmd的路径下生成文件夹main.exe_extracted,可以找到main.pyc。(1).将三个环境变量设置好,重点是第三个pyinstaller文件夹所在的路径。(3).生成的exe文件在Prompt的默认路径下的dist的文件夹下。(4).生成的exe文件在cmd的路径下的文件夹dist下。(3).在Prompt或cmd的路径下生成main.py。(1).打开Anaconda Prompt,(2).Prompt或cmd中。(2).Prompt或cmd。

陈万洲的专栏 2770

ITIL-IT运维管理-概述

ITIL-IT运维管理-概述 概述 IT服务管理(ITSM)是一套帮助企业对IT系统的规划、研发、实施和运营进行有效管理的方法,是一套方法论。ITSM起源于ITIL(IT Infrastructure Library,IT基础架构标准库),ITIL是CCTA(英国国家电脑局)于1980年开发的一套IT服务管理标准库。它把英国在IT管理方面的方法归纳起来,变成规范,为企业的IT部门提供一套从计划、研发、实施到运维的标准方法。 中文名 IT服务管理 外文名 ITService Management 专家

syjhct的博客 4万+

python自带编译器如何生成exe_基于matlab生成exe可执行文件的方法和程序源码

核心提示:QQ :1224848052微信:HuangL1121邮箱:1224848052@qq.com...如果你使用的是MATLAB7.0以上的版本的话,用mcc编译后,将MATLAB安装目录中的MCRInstaller.exe这个文件拷出来,同编译出的文件放在一起,在没有MATLAB的机子上,先点击安装MCRInstaller.exe文件,注意:安装目录必须位于它所在的文件夹,安装完成后就...

weixin_39955925的博客 167

SNAP实战:哨兵1 SLC数据预处理全流程详解(附避坑指南)

本文详细解析了使用SNAP软件处理哨兵1号SLC数据的完整预处理流程。从轨道精校正、辐射定标到多视与斑点滤波,再到地理编码,文章提供了清晰的操作步骤与核心逻辑,并重点分享了实践中的常见“坑”与解决方案,旨在帮助用户高效、准确地完成SAR数据预处理。

7up55的博客 1026

python3编译成exe运行_python3.x的程序如何打包成exe可执行文件

最近有人问我,如何将编写的python打包成exe程序。使用pip install pyinstaller,安装了pyinstaller3.3。在网上找了个教程,将程序打包成了exe文件,但是在执行文件时出现了Failed to execute xxx的错误。后来发现,应该是在程序里面引用的图片等路径出了错误,同时在打包好的exe文件路径下也应该放置引用的图片。特写这篇文章,供遇到此问题的同学参考...

weixin_39915267的博客 79

Linux内核同步原语之队列自旋锁(Queued Spin Lock)深度解析

本文深度解析了Linux内核中的队列自旋锁(Queued Spin Lock)机制。通过对比传统自旋锁的瓶颈,详细阐述了队列自旋锁如何利用紧凑的4字节结构、每CPU节点数组和pending位优化,有效解决多核(SMP)系统中的缓存行乒乓和惊群效应,实现公平、高效的锁等待队列,从而显著提升内核在高并发场景下的可扩展性与性能。

weixin_29205061的博客 303

【低空经济】低空无人驾驶航空器运行管理系统设计方案

低空无人驾驶航空器运行管理系统(以下简称“系统”)旨在为低空域内的无人驾驶航空器(UAV)提供高效、安全、智能的运行管理服务。系统通过集成先进的通信、导航、监控、数据处理和人工智能技术,实现对低空域内无人驾驶航空器的实时监控、动态调度、风险评估和应急响应,确保其在复杂空域环境中的安全运行。系统的核心功能包括空域管理、飞行计划审批、实时监控、冲突预警、应急管理和数据分析。空域管理模块负责划分和管理低空域资源,确保不同飞行任务之间的空域隔离和高效利用。

2502_92579126的博客 1140

python打包exe与反编译exe文件与防止反编译方式生成exe

序 最近根据公司生产需求写了个小脚本,想打包成exe文件分发给其他人使用,但又担心代码本反编译而泄露信息,所以花了一整天时间,磕磕绊绊的,终于搞定了!来之不易的“成果”需要总结和记载(毕竟耗费了生命中一天之久的时长)。 目录 一、python如何打包成exe (常规打包方法) 二、反编译exe文件 三、防止反编译 正文 一、python如何打包成exe (常规打包方法) 1.1首先你要先把自己的程序写好,在pycharm中运行正常。我的程序文件目录结构如下图所示: 1....

hmy123cq3的专栏 9204

竞赛无人机模块化开发实战:2023 TI电赛G题空地协同消防系统(飞控与视觉融合篇)

本文以2023年TI电赛G题为例,详细阐述了采用模块化开发思维构建空地协同智能消防系统的实战方法。文章重点拆解了无人机飞控二次开发、视觉识别与融合控制等核心模块,提供了硬件选型、代码实现与系统联调的完整指南,旨在帮助参赛者通过“搭积木”式编程高效完成复杂系统集成。

js777的博客 451

python+QT程序打包成exe可执行文件

1、安装pyinstaller pip install pyinstaller 安装后,运行pyinstaller.exe命令出现使用方法,表示安装成功了。 参数介绍 选项 说明 -F 打包一个exe文件 -D 打包多个文件,在dist中生成很多依赖文件 -d 产生debug版本的可执行文件 -w 程序启动不打开命令行 2、打包.exe 终端运行:pyinstaller.exe -F -w main.py。其中main.py是你的主程序入口,此时会生成main.spec

几何木偶 3057

在移动固态上安装ubuntu系统,重启后卡住报错:blk_update_request: I/O error, dev sda, sector ... op 0x0 (READ)如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1793

【Linux0.11代码分析】之 系列文章链接汇总(全)

【Linux0.11代码分析】00 之 系列文章链接汇总(全)

|~~~热爱生活、努力学习的小伙汁~~~| 1449

python可以做exe文件吗_手动制作python的exe可执行程序

1. 手动制作python的exe可执行程序 -- by Leo JayPython没有内建一个编译为exe的功能。给python程序的部署带来不少的麻烦。所以就会出现一些py2exe之类的很不错的工具,用于自动把.py文件编译为.exe文件。最近抽空研究了一下手动实现类似py2exe的功能,希望加强对python的了解。结果还相当不错。把结果记录下来,与大家共享。1.1. 原理文中所描述的方法,...

weixin_36371053的博客 1554

行为预测模型:Social LSTM与Graph Neural Networks

行为预测模型:Social LSTM与Graph Neural Networks ,人工智能,计算机视觉,大模型,AI,本文围绕行为预测模型Social LSTM与Graph Neural Networks展开,介绍了两者的基础概念、原理、应用场景,还对比了它们在优势、劣势和适用场景上的不同,最后给出了相应的代码示例。Social LSTM基于LSTM,通过社交池化层处理多智能体交互;图神经网络处理图结构数据,靠消息传递获取信息,二者各有侧重,适用于不同场景。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

exe pycharm 编译_python如何编译成exe文件?

python如何编译成exe文件?具体步骤如下:1、使用pycharm安装pyinstaller。2、找到pyinstaller的安装目录。C:\Users\lounious\PycharmProjects\untitled\venv\Scripts\pyinstaller-script.py注意在该目录的母目录下一般有我们的程序文件C:\Users\lounious\PycharmProject...

weixin_42498206的博客 1619

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python逆向之pyc反编译

pyc反编译

GalaxySpaceX的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Tkinter打包成EXE安装文件

Python的Tkinter打包成EXE安装文件

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 1344

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 测试MQTTX有感
下一篇: 分享一个类似mqttx的mqtt测试工具MQTTSHARP
weipt
博客等级 码龄23年 71粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

weipt

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

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

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

打赏作者

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

抵扣说明:

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

余额充值