您的位置:

打包python程序发布(python怎么打包发布)

本文目录一览:

如何将自己的Python代码打包发布到pypi上

什么是pypi

简单的说pypi是一个python包的仓库,里面有很多别人写好的python库,你可以通过easy_install或者pip进行安装,方便用户更方面的使用你的代码模块。

将代码打包并上传到pypi上,大体上分为以下几步:

1、整理代码的目录结构,方便打包和python的import,为了方便引用,需要将代码模块变成一个包,所以需要将功能代码用目录来整合方便引用,并且需要创建__init__文件,__init__中可以没有内容,也可以在__init__文件中进行import(from .extractor import Document)操作,以减少整体模块引用时import的层数,避免错误。

[html] view plain copy

├── ./tidypage  

│   ├── ./tidypage/cleaners.py  

│   ├── ./tidypage/extractor.py  

│   ├── ./tidypage/__init__.py  

│   └── ./tidypage/titles.py

2、功能模块的目录整理好后,就可以开始整理和添加发布到pypi上所使用的文件了

tidy_page  

├── LICENSE  

├── README.rst  

├── requirements.txt  

├── setup.py  

├──tidypage  

│   ├──cleaners.py  

│   ├──extractor.py  

│   ├──__init__.py  

│   └──titles.py

就是将原来的目录深移一层,文件夹名称可以根据自己意愿。然后在到第一层的目录下创建些特殊文件,具体你可以看看下面这个文件结构你就明白了

LICENSE文件是授权文件,比如:MIT license, APACHE license

README.rst 文件想必大家都不陌生,其实就是项目介绍和使用说明

setup文件才是重点,是python模块安装所需要的文件,它的格式如下:

#!/usr/bin/env python  

from __future__ import print_function  

from setuptools import setup, find_packages  

import sys  

  

setup(  

    name="tidy-page",  

    version="0.1.1",  

    author="Desion Wang",  

    author_email="wdxin1322@qq.com",  

    description="html text parser,get the content form html page",  

    long_description=open("README.rst").read(),  

    license="MIT",  

    url="",  

    packages=['tidypage'],  

    install_requires=[  

        "beautifulsoup4",  

        lxml_requirement  

        ],  

    classifiers=[  

        "Environment :: Web Environment",  

        "Intended Audience :: Developers",  

        "Operating System :: OS Independent",  

        "Topic :: Text Processing :: Indexing",  

        "Topic :: Utilities",  

        "Topic :: Internet",  

        "Topic :: Software Development :: Libraries :: Python Modules",  

        "Programming Language :: Python",  

        "Programming Language :: Python :: 2",  

        "Programming Language :: Python :: 2.6",  

        "Programming Language :: Python :: 2.7",  

    ],  

)

NAME 名字,一般放你包的名字即可PACKAGES 包含的包,可以多个,这是一个列表DESCRIPTION 关于这个包的描述LONG_DESCRIPTION 参见read方法说明KEYWORDS 关于当前包的一些关键字,方便PyPI进行分类。AUTHOR 谁是这个包的作者,写谁的名字吧AUTHOR_EMAIL 作者的邮件地址URL 你这个包的项目地址,如果有,给一个吧,没有你直接填写在PyPI你这个包的地址也是可以的VERSION 当前包的版本,这个按你自己需要的版本控制方式来LICENSE 授权方式INSTALL_REQUIRES 模块所依赖的python模块

文中的classifiers的内容并不是随便填写的,你需要参照本文参考文档中的PyPI Classifiers来写

3、开始使用Distutils进行打包

为了保证效果,在打包之前我们可以验证setup.py的正确性,执行下面的代码

python setup.py check

输出一般是running check如果有错误或者警告,就会在此之后显示没有任何显示表示Distutils认可你这个setup.py文件。

如果没有问题,那么就可以正式打包,执行下面的代码:

python setup.py sdist

执行完成后,会在顶层目录下生成dist目录和egg目录

tidy_page  

├── tidy_page/dist  

│   ├── tidy_page/dist/tidy-page-0.1.0.tar.gz  

│   └── tidy_page/dist/tidy-page-0.1.1.tar.gz  

├── tidy_page/LICENSE  

├── tidy_page/README.rst  

├── tidy_page/setup.py  

├── tidy_page/tidypage  

│   ├── tidy_page/tidypage/cleaners.py  

│   ├── tidy_page/tidypage/extractor.py  

│   ├── tidy_page/tidypage/__init__.py  

│   └── tidy_page/tidypage/titles.py  

├── tidy_page/tidy_page.egg-info  

│   ├── tidy_page/tidy_page.egg-info/dependency_links.txt  

│   ├── tidy_page/tidy_page.egg-info/PKG-INFO  

│   ├── tidy_page/tidy_page.egg-info/requires.txt  

│   ├── tidy_page/tidy_page.egg-info/SOURCES.txt  

│   └── tidy_page/tidy_page.egg-info/top_level.txt

4、打包完成后就可以准备将打包好的模块上传到pypi了,首先你需要在pypi上进行注册 goto PyPI Live

注册完成后,你需要在本地创建好pypi的配置文件,不然有可能会出现使用http无法上传到pypi的问题

Create a .pypirc configuration file,在用户的home目录下创建.pypirc文件,文件的内容如下

[distutils]index-servers =  pypi[pypi]repository=

chmod 600 ~/.pypirc

python setup.py register -r pypi

在pypi上注册模块

python setup.py sdist upload -r pypi

上传python文件包,没有问题你就可以在pypi上看到你上传的包了并且可以使用pip搜索和install你的python包了

怎么把python程序发给别人

可以将python编译成可执行文件发送,也可以采取打包的形式,将程序打包成压缩文件包后再发送。

如何发布python程序

如何发布一个Python程序:

1、安装一个pyInstaller

在pycharm里点 file—–setting—–Project workspace——Interpreter——点pip右边的+号,进入下面这个界面:

搜索pyInstaller, 点击左下方Install package安装(出现错误了可以多安装几次)

(或者在命令提示符界面 用 pip install pyinstaller命令安装)

2、将.py文件打包成.exe文件

在完成第一步的安装后,就开始我们的打包。在打包之前可以先运行一下你要打包的.py文件是否可以运行,然后进行打包。

在pycharm中右键点击你将要打包的文件,找到Open in terminal点一下。

在下面出现的Local框内输入命令:pyinstaller -F 文件名,运行。

然后进行打包

打包完成后,稍等一下会刷新出一个dist文件夹, 点击 ,在里面有一个 .exe文件,右键,点击里面的 Show in Explore 找到一个.exe文件(如果不一样的可以看一下你下面打包成功后出现的路径。)

3、发送

将打包好的.exe文件拉到你之前.py文件所在的文件夹,将所有需要的素材一起发送。

别人收到后就能打开你的.exe文件运行你的程序。

众多python培训视频,尽在python学习网,欢迎在线学习!

怎么把python打包成一个程序

一、安装pyinsatller打开命令行窗口,输入如下指令

pip3 install pyinstaller

然后静待pyinstaller自动安装好

二、使用pyinstaller打包Python程序

在你的Python程序文件夹上(不点进去)按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口”或者先进入命令行窗口,然后使用cd指令进入程序文件夹,示例:

cd G:\工程储存\Python工程\love

输入以下指令,开始打包

pyinstaller -F -w (-i icofile) filename

filename表示你的Python程序文件名

-w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)

括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好输入完成,按回车,就会开始自动打包了,

第一次打包过程可能比较缓慢输入

示例:pyinstaller -F -w -i favicon love.py

然后我们进入到程序目录里面会再看到一个名称为dist目录,打包好的exe程序就在里面

Python程序代码混淆、编译、打包、运行(桌面程序防破解向)

像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。

虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。

本次演示环境:linux

确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口。

编译

批量改名.pyc文件

移动.pyc文件

清理.py文件

清理__pycache__文件夹

打包成zip

运行时只要将zip文件作为参数即可

最终整合脚本

调用方式

对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。

所以对于混淆程度的取舍,要视工程的规模而定。

2.1 混淆工具pyminifier

在原来的工具 pyminifier上修复了几个bug。

安装:

python3 安装

或者clone下来,自行安装

使用例子

2.2 源码变更

不同的配置对于源码的要求不同,以下是笔者踩过的坑。

其他混淆想法

结合混淆、编译和打包,尝试出以下发布脚本。

主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移动到dist,发布dist即可。

混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。

打包python程序发布(python怎么打包发布)

2022-11-12
如何发布一个python包,python 发布包

2022-11-19
Python打包和发布工具

2023-05-13
python程序伪编译与打包(python伪代码)

2022-11-11
分发打包python(什么是打包发送)

2022-11-11
使用Python打包Android APK,快速完成应用发布

在过去的几年中,Python已经成为一种强大的编程语言,在广泛的应用程序开发中占据着重要的地位。但是,对于许多开发人员而言,在发布他们的应用程序时,仍然需要使用其他语言和工具。然而,Python可以很

2023-12-08
Python打包选项:优化程序的编译、运行和发布

2023-05-13
nodejs发布程序(node项目发布)

本文目录一览: 1、NodeJs的优势和适合开发的程序 2、如何使用npm打包发布nodejs程序包 3、如何使用nodejs开发复杂命令行程序 NodeJs的优势和适合开发的程序 很多同学可能都听说

2023-12-08
python打包iso,python打包成手机可执行文件

2022-11-21
Python稳定版本发布记录

2023-05-10
python代码打包工具,python代码怎么打包

2022-11-21
打包python脚本的血与泪(python能做脚本吗)

2022-11-09
python的用法笔记本(笔记本学python)

2022-11-16
python学习笔记day26(Python第六章)

2022-11-12
python笔记第六天,python第六周笔记

2022-11-21
python画图笔记(python画图作业)

2022-11-10
code的python开发环境(code python)

2022-11-13
python课堂整理32(python笔记全)

2022-11-12
Python Padx:用Python快速打造自己的代码笔记

2023-05-12
使用setuptools进行Python打包和分发

2023-05-10