打包程序(编写自己的第三方,实现pip install 下载)|8月更文挑战

493 阅读2分钟

一、打包应用程序

python中的代码需要重复使用,我们可以对它进行封装。

包需要重复使用,我们需要怎么做呢?

我们可以参考一下Django这个包,然后自己实现一个第三方.在进行pip install

1.创建一个包

# 我们这里拿一个py(newtime)代替# newtime.py
import timeprint("调用这个包就休息5秒")
time.sleep(5)
print("接受")

2. 创建一个父目录。

#称这个目录为Mynewtime。

image-20210730114339293.png

3. 将写好的包文件移动到Mynewtime目录中

image-20210730114503506.png

4.创建一个说明文件Mynewtime/README.rst

文件的内容(就是写告诉别人应该怎么用【!用英文】)

=====
newtime
=====holle word
-----------
1.one
2.two
​

5.创建一个许可证文件Mynewtime/LICENSE文件

公开发布的代码如果没有License是毫无用处的。 Django和许多Django兼容的应用程序是根据BSD许可证分发的;但是,您可以自由选择自己的许可证。 只需知道你所选择的License,将决定谁能使用你的代码.

6.创建一个setup.py 文件

它提供如何构建和安装该应用的详细信息,主要用于使用范围等等。

import os
from setuptools import find_packages, setup
​
with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
    README = readme.read()
​
# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
​
setup(
    name='newtime',
    version='0.1',
    packages=find_packages(),
    include_package_data=True,
    license='BSD License',  # example license
    description='A simple Django app to conduct Web-based polls.',
    long_description=README,
    url='https://www.example.com/',
    author='Your Name',
    author_email='yourname@example.com',
    classifiers=[
        'Environment :: Web Environment',
        'Framework :: Django',
        'Framework :: Django :: X.Y',  # replace "X.Y" as appropriate
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',  # example license
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        # Replace these appropriately if you are stuck on Python 2.
        'Programming Language :: Python :: 3',
        'Programming Language :: Python :: 3.4',
        'Programming Language :: Python :: 3.5',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
    ],
)

7.创建一个MANIFEST.in文件

可以包含额外的文件

include LICENSE
include README.rst

8.创建一个空目录docs(选择)

里面可以放详细说明文档

Mynewtime/MANIFEST.in添加另外一行:

recursive-include docs *

9.通过python setup.py sdist 构建你的包

创建成功会多一个dist,newtime.egg-info文件夹

直接在这个文件夹下打开cmd(Shift+右键)[在此次打开powershell窗口]
在输入命令`python setup.py sdist` 构建

二、使用你自己的包

1.查看包pip list

2.安装软件包

pip install dist/newtime-0.1.tar.gz
​
pip list查看一下

image-20210730120820610.png

3.使用

image-20210730120931795.png

4.卸载包

pip uninstall newtime

三、发布你的第三方

packaging.python.org/