Python 项目代码写完了,然后怎么打包和发布?

如何将Python程序打包发布,实现一键安装 哈喽,大家好,我是木头左!编写完Python脚本后,如何将其高效地发布并安装到其他计算机上,确保程序的稳定运行,是每个Python开发者必须面对的挑战。本文将详细介绍如何将Python程序打包发布,实现一键安装,让程序的分发与部署变得轻松便捷。 阅读详情
AI摘要

本文详细指导了如何在Python项目完成后进行打包,包括创建package结构、编写setup.py文件,以及如何使用setuptools和twine进行发布。同时讨论了开源选择和版权问题。

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?

喂,开源么?

接下来小帅b就跟你说说,如何打包你的代码。

就拿我们上次演示的 todo 为例,写完代码之后,代码的目录是这样的:

在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:

这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。

在 package 中,还创建了一个 __init__.py 仪式感一下。

为了让别人知道你是认真对待这个项目的,你可以在项目文件中创建一个 tests 目录,在里面测试你的代码:

接着可以创建一个 LICENSE ,用来说明你的这个项目可以被怎么使用?是不是需要声明来源,是不是可以商用?别人用你的项目去搞事情如何避免被抓去吃牢饭等。

现成的开源协议有好几种,不太了解的可以看看我之前写的这个:那些 GitHub 所声明的开源协议都是什么意思?

接着再创建一个 README 文件,来说明你这个项目是干什么的,如何使用等描述。

现在你的项目文件目录就有点人模人样了:

接下来要创建一个比较重要的文件了 —— setup.py,这个文件主要用来描述你的项目信息,好让 setuptools 打包工具来帮你打包项目。

在根目录下创建一个 setup.py 文件,按以下的方式来写你的项目信息:

每个参数都是什么意思呢?我来给你说明一下:

long_description:对项目比较长的描述,我们可以直接从 你刚刚写的 README 文件读取。

name: 你定义的包名,可以用字母、数字、下划线,需要确保唯一性。

version: 项目的版本号。

author: 你(作者)的名称。

author_email: 你(作者) 的邮箱。

description: 项目的简要描述。

long_description_content_type:长描述内容的使用的标记类型,一般为 markdown 或者 rst。

url: 你这个项目的主页地址,也可以直接链接到你这个项目的Github 地址上面去。

include_package_data: 是否添加 py 以外的文件。

package_data: 需要添加 Python 的额外文件列表。

packages: 直接用 setuptool 找到你项目所有相关的包列表。

classifiers: 附加说明,比如这里写的就是使用于 Python3 版本,使用的是 MIT 协议,独立于 OS。

python_requires: python 版本要求。

那么现在,你的项目目录应该是这样子的:

接下来就可以打包了。

如果你之前没有安装过 setuptools 和 wheel 可以先安装一波:

python3 -m pip install --upgrade setuptools wheel

然后在你的项目根目录下,使用如下命令打包:

python3 setup.py sdist bdist_wheel

这时候你的目录会增加这么些文件:

这样就算打包好了,在 dist 目录中,以 tar.gz 结尾的是你项目的源文件,而以 .whl 结尾的就是构建好了给别人使用的发行版。

那么如何将你打包好的项目发布出来,给别人使用呢?

其实之前有说过了,这里再简单的说一下吧:

先安装一下 twine:

python3 -m pip install twine

接着使用 twine 将你打包好的文件上传到 pypi 上面去:

twine upload dist/*

这时候它会提示你输入 pypi 的账号密码:

没有怎么办?去注册一个呗,到以下链接注册:

https://pypi.org/account/register/

接着输入你的账号密码,就可以上传上去了:

这时候别人就可以通过 pip 来安装你的项目了:

像这样:

然后就可以给别人使用你的包了:

你在 pip install 的时候,其实就是下载你上传的 whl 文件然后安装:

如果你不想开源,只想给你朋友使用的话,你也可以直接把 dist 这个目录下的文件发给他,让他自行安装一波就可以使用了:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以上就是“Python 项目代码写完了,然后怎么打包和发布?”的全部内容,希望对你有所帮助。
​
​关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

Zemax实战录——非序列模式下的微透镜阵列仿真与优化 本文详细介绍了在Zemax非序列模式下进行微透镜阵列仿真的完整流程与优化技巧。文章重点阐述了从序列模式切换到非序列模式的必要性,并逐步指导如何搭建光源、阵列与探测器的仿真环境。核心在于通过调整圆锥系数等关键参数优化像差,并增加光线数以提升仿真精度与均匀性,为光学设计提供可靠依据。 阅读详情

相关推荐

opencv的cmake报错

1、下载 ippicv_2021.8_win_intel64_20230330_general.zip、v0.1.2a.zip、opencv_videoio_ffmpeg.dll、opencv_videoio_ffmpeg_64.dll、ffmpeg_version.cmake。由于下载源在https://raw.githubusercontent.com,由于网络原因下载不顺畅,可以先找到文件下载到对应文件夹下,或者更改网络环境。ffmpeg_version.cmake文件,打开后显示如下, 另存即可。

nownow_的博客 1299

(备忘)Pyinstaller的使用方法

打包Python代码生成exe程序的方法 pyinstaller main.py PyInstaller 支持的常用选项 -h,--help 查看该模块的帮助信息 -F,-onefile 产生单个的可执行文件 -D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件 -w,--windowed,--noconsolc

hp150119的博客 1390

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5006

Python 怎么打包代码和发布?

Python 怎么打包代码和发布?

一名正义的白帽黑客 3467

深度学习入门:使用CMSIS-NN在微控制器上部署模型的完整指南与Python Jupyter实践

CMSIS-NN是ARM为Cortex-M系列微控制器设计的神经网络库。它旨在提供一套高效、轻量级的神经网络API,使得开发者可以在资源受限的微控制器上运行深度学习模型。CMSIS-NN优化了各种常见的神经网络层,如卷积层、全连接层等,确保它们在微控制器上的运行效率。# 定义模型])# 编译模型# 训练模型这样,我们就得到了一个简单的手写数字识别模型。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。为了获得完整的项目和更多的优化技巧,请下载完整项目。

m0_57781768的博客 5884

从加权最小二乘(WLS)到IAA:手把手推导DOA估计中的迭代自适应核心公式

本文深入解析了从加权最小二乘(WLS)到迭代自适应算法(IAA)在DOA估计中的数学推导与应用。通过动态调整加权矩阵,IAA在低快拍数、相干源等复杂场景中展现出卓越性能,显著提升角度分辨率和检测概率。文章详细介绍了算法核心步骤、工程优化策略及前沿发展,为雷达探测和无线通信领域提供重要参考。

weixin_30847865的博客 290

【Python】打包与发布(Packaging and distributing projects)

其中,tar.gz文件是源发行版(a source distribution ),而.whl文件是构建发行版(a built distribution)。上面列出的文件将自动包含在您的源代码发行版中。__init__.py:设置为空(简单起见)若显示以下内容,则表示安装该包成功!以Unix/macOS系统为例。三、本地安装/卸载该包&测试。一、创建一个简单的项目。确保安装了最新版本的。

Xminyang的博客 1241

Zynq远程更新程序实战:从emmc到flash的完整方案解析

本文详细解析了Zynq远程更新程序的完整方案,重点探讨了从emmc到flash的实战操作。通过硬件连接限制破解、emmc配置技巧、flash擦写策略优化等关键技术点,提供了可靠的远程更新解决方案,特别适合需要频繁更新boot.bin的应用场景。

weixin_29163797的博客 179

Python打包发布的方法

3.把生成的build文件夹存放在指定目录:pyinstaller (-F) xxx.py --workpath DIR。2.把生成的spec文件存放在指定目录:pyinstaller (-F) xxx.py --specpath DIR。1.把生成的exe文件存放在指定目录:pyinstaller (-F) xxx.py --distpath DIR。执行完成后生成:dist文件夹,build文件夹,py文件名.spec文件;exe文件在dist文件夹下。一、需要安装pyinstaller模块。

Ws_9901的博客 853

【毕设护航】从0构建YOLOv8犬类识别系统,120种犬类精准检测+可视化界面全流程指南

本文介绍了一个基于YOLOv8的120种犬类目标检测与可视化系统毕业设计项目。该项目使用Stanford Dogs数据集,将图像分类任务转化为目标检测任务。主要内容包括:数据预处理(XML标注转换为YOLO格式)、YOLOv8模型训练与测试(包含训练脚本编写和推理实现),以及基于Tkinter的图形界面开发。该项目技术链条完整,涵盖检测、分割等多任务支持,适合作为计算机视觉方向的毕业设计选题,兼具技术深度和展示效果。

LXY_LOVE36的博客 96

C# 从数秒到毫秒:MySQL+Redis百万数据优化实战全解析

在处理百万级数据时,传统单体数据库常面临查询效率低下、数据库负载过高和用户体验差等问题。为解决这些性能瓶颈,可以采用MySQL分库分表、Redis缓存和异步统计的组合策略。 数据库分片:通过水平分表和分库实现,将单表数据分散到多个物理表或数据库实例中,降低单点负载。 Redis缓存:利用Redis缓存高频数据,减少数据库查询压力,提升响应速度。 异步统计:通过消息队列(如RabbitMQ)解耦统计任务,后台处理非实时任务,避免阻塞主流程。 这些优化策略能够显著提升系统性能,确保在高并发和大数据量场景下的稳定

墨夶的博客 852

Python 项目代码写完了,然后该怎么打包和发布呢?

主题Python 你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢? 喂,开源么? 接下来小帅b就跟你说说,如何打包你的代码。 就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的: 在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下: 这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。 在 package 中,还创建了一个 你常常看.

爬遍所有网站 1457

3️⃣ Coze工作流基础教学(2025年全新版本)

Coze 工作流作为扣子平台的重磅工具,利用可视化节点,如大语言模型、插件、条件判断等,把复杂任务巧妙拆解成多步骤流程。它不仅支持自动化编排,还能实现跨系统协同,有效提升处理效率与输出稳定性。在那些对准确性或格式有严格要求的场景中,比如报告生成、旅行规划,Coze 工作流更是发挥着关键作用。

李同学Lino的博客 5855

python代码写完怎么运行-Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别...

weixin_37988176的博客 1767

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怎么打包项目成zip_Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的todo为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创...

weixin_31938031的博客 1035

深度学习工具包 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项目怎么打包上线_Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别...

weixin_39636245的博客 424

python工程文件如何打包_Python 项目代码写完了,然后怎么打包和发布?

​你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 todo 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创建了一个...

weixin_39613637的博客 162

vs写python怎么运行_Python 项目代码写完了,然后怎么打包和发布?,vs写完代码怎么运行...

Python 项目代码写完了,然后怎么打包和发布?,vs写完代码怎么运行你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 ...

weixin_39930711的博客 912

python源码文件以什么结尾_Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别...

weixin_27011811的博客 291

菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的todo为例,写完代码之后,代码的目录是这样...

cainiao_python的博客 1055

Python代码画喜羊羊怎么画_Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的 用 Python 开发一个 「个人计划 todolist」 为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别...

weixin_39550379的博客 197

python发行版是什么意思_Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的todo为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创...

weixin_39671405的博客 127

php代码里怎么写html代码_菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?...

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的todo为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创...

weixin_39976166的博客 102

菜鸟python_菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?

你把你的代码写完了,是不是要给别人使用下,怎么打包你的项目代码呢?喂,开源么?接下来小帅b就跟你说说,如何打包你的代码。就拿我们上次演示的todo为例,写完代码之后,代码的目录是这样的:在 todo 这个目录里面,文件都放在一起了,我们可以这样简单划分一下:这里创建了一个 package 目录,将源码文件放进去,然后把模板文件和数据库文件分门别类的安排好。在 package 中,还创...

weixin_36076139的博客 119

如何打包和发布Python程序

原文首发 文章目录如何打包和发布Python程序打包编写setup.py文件编译发布TestPYPI发布PYPI发布附录新书推荐 如何打包和发布Python程序 在使用Python的过程中,我们经常需要做的一件事情就是通过pip来安装第三方的包。那么你是否也曾想过pip安装的包是怎么被打包并发布上去的呢?今天就来说一说Python的第三方包的打包与发布流程! 打包 想要发布一个第三方的包,首先...

上帝De助手 1万+
上一篇: 你真的会使用 Python 命令吗?
下一篇: Python 只用一行代码,可以实现哪些事儿?
壹只小小码农
博客等级 码龄5年 8101粉丝 1334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值