如何製作pip安裝包 --python
1、新建一個資料夾,檔名可以自定義,用來存放文件。
2、再新建一個資料夾,資料夾名自定義,但此處一般為工程名,我命名為packer。
3、分別新建LICENCE、README.md(markdown檔案)、requirements.txt、setup.py檔案,注意檔案尾綴。
4、在pycharm編譯器裡面開啟這個資料夾,然後新建一個file,命名為“.gitignore",用來在checkin的時候忽略掉一些檔案,而此處一般選擇忽略的檔案為:
.idea/
__pycache__/
用pycharm開啟的目錄路徑下會預設有一個.idea/ 資料夾。
5、編輯自己的
內容包括:
# 概括
## 說明
本包名字為*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 packer
或from packer.utils.common import hello_world
示例:
from packer.utils.common import hello_world
hello_world("zz")
輸出:
'Hello zz'
最後注意:
在__main__.py檔案裡面需要注意程式設計規範:
(1)如果沒有類,則函式之間要空兩行
(2)import與函式之間要空兩行
(3)單詞不要編寫錯誤