1. 程式人生 > >如何製作pip安裝包 --python

如何製作pip安裝包 --python

1、新建一個資料夾,檔名可以自定義,用來存放文件。
在這裡插入圖片描述
2、再新建一個資料夾,資料夾名自定義,但此處一般為工程名,我命名為packer。

3、分別新建LICENCE、README.md(markdown檔案)、requirements.txt、setup.py檔案,注意檔案尾綴。
在這裡插入圖片描述

4、在pycharm編譯器裡面開啟這個資料夾,然後新建一個file,命名為“.gitignore",用來在checkin的時候忽略掉一些檔案,而此處一般選擇忽略的檔案為:

.idea/ 
__pycache__/

在這裡插入圖片描述

用pycharm開啟的目錄路徑下會預設有一個.idea/ 資料夾。

5、編輯自己的

README.md 說明文件
內容包括:

# 概括

## 說明
本包名字為*packer*,使用方法包括...

### 打包方法

### 安裝方法

### 引數說明

### 錯誤反饋

6、編輯setup.py檔案內容

按照官方格式:

from __future__ import print_function
from setuptools import setup, find_packages
import sys

setup(
    name="packer",
    version="0.1.0",
    author="",  #作者名字
    author_email=
"", description="Python Framework.", license="MIT", url="", #github地址或其他地址 packages=find_packages(), include_package_data=True, classifiers=[ "Environment :: Web Environment", 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License'
, 'Natural Language :: Chinese', 'Operating System :: MacOS', 'Operating System :: Microsoft', 'Operating System :: POSIX', 'Operating System :: Unix', 'Topic :: NLP', 'Topic :: Software Development :: Libraries :: Python Modules', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', ], install_requires=[ 'pandas>=0.20.0', #所需要包的版本號 'numpy>=1.14.0' #所需要包的版本號 ], zip_safe=True, )

7、在工程資料夾"packer"目錄下新建一個utils的package,預設自帶一個__init__.py檔案,即呼叫該包就自動執行該檔案。然後在包裡面新建一個自己想要擁有的函式。
在這裡插入圖片描述

8、在工程名資料夾下再新建一個__main__.py檔案,用來執行函式。
在這裡插入圖片描述

9、最後開啟原來最開始用來存放文件新建的資料夾,在此處位置開啟命令視窗,在命令視窗中輸入:
python .\setup.py sdist
最終生成一個dist資料夾,在資料夾裡面就有一個建立好的安裝包
在這裡插入圖片描述

10、經過以上步驟已經可以生成一個pip可安裝的工程包,安裝非常簡單。
直接在命令視窗輸入:
pip install .\dist\packer-0.1.0.tar.gz
即可完成安裝。
注意:
安裝時先會檢查是否滿足安裝的條件,比如pandas的包的版本號等。

11、檢查是否安裝成功
在原來的packer資料夾下開啟命令視窗,輸入:
python -m packer
就可以看到輸出,也即包安裝成功。


當然實際開發當中為了可以在命令視窗直接執行程式碼,又不得不輸入引數的時候,必須要為包新增一個輸入引數的功能

12、新增接受引數的功能
在剛剛編輯的__main__.py檔案下,修改成一下格式:

from argparse import ArgumentParser,ArgumentDefaultsHelpFormatter
from packer.utils.common import hello_world


def parse_args():
    parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter,
                            conflict_handler='resolve')
    parser.add_argument("-mess","--mss",help="type your message")
    args = parser.parse_args()
    return args


def main(args):
    message = args.mess
    output = hello_world(message)
    print(output)


if __name__ == "__main__":
    main(parse_args())

然後重新打包,也即上面提到的python .\setup.py sdist命令,接著在命令視窗下重新安裝該生成的安裝包。

安裝好之後在命令視窗輸入:(-mess 是對應的引數)
python -m packer -mess xxx
則在視窗就會輸出對應的:
Hello xxx

此外,因為已經pip install這個包了,則在這個包安裝的虛擬環境下即可隨意地import這個包,並呼叫裡面的函式。
呼叫方法:
import packerfrom packer.utils.common import hello_world
示例:

from packer.utils.common import hello_world

hello_world("zz")

輸出:

'Hello zz'

最後注意:
在__main__.py檔案裡面需要注意程式設計規範:
(1)如果沒有類,則函式之間要空兩行
(2)import與函式之間要空兩行
(3)單詞不要編寫錯誤