Python 製作自定義包 打包 安裝

2021-10-02 05:57:13 字數 1968 閱讀 7775

一. 目錄結構

|--pkgname

|----|--__init__.py

|----|--module1.py

|----|--module2.py

|----|--subpkgname

|----|----|--__init__.py

|----|----|--module3.py

|--setup.py

二. 檔案解析  

pkgname為目錄名, 亦即包名, 該目錄下有__init__.py, module1.py, module2.py檔案及subpkgname目錄,  

subpkgname目錄下有__init__.py, module3.py檔案及subpkgname目錄.

pkgname同級目錄下有setup.py檔案.

__init__.py中可以控制當前包都有哪些模組可以匯出,在__init__.py中新增「__all__ = ['module1','module2']」

__init__.py可以為空.

module檔案內可為函式, 類等平常使用的方法, 不多作解釋. 

setup.py檔案內容基本如下:  

from setuptools import setup

requires = #依賴包, 如有

setup(name="bunshinn", #包名

version="18.8.30",

install_requires=requires,

description="test to install module",

author="bunshinn",

author_email = "[email protected]",

url = "",

py_modules=['pkgname.module1','pkgname.module2',], #要引入的模組

packages=['pkgname.subpkgname'], #要引入的包

)

三. 製作與安裝

進入該目錄下

python setup.py build #生成包檔案

python setup.py sdist #生成壓縮包

a. 將壓縮包解壓後, 進入主目錄, 內有setup.py檔案

執行 python setup.py install

完成包安裝.

b.使用pip安裝

pip install path_to_dist_package,

若出現 cannot uninstall a distutils installed project'錯誤提示, 需對pip加引數如下:

pip install --ignore-installed d:\packages\packagename.tar.gz

四. 發布至pypi

a. 準備工作: 註冊pypi帳戶

b. 安裝twine: pip install twine

c. 環境變數: path/to/python/scripts設為環境變數(pip同目錄, 若已設, 忽略之)

d. 在第三步基礎上, 執行twine upload dist/* , 輸入帳號密碼, 如有報錯, 剛已上傳成功, 可通過 pip pkgname直接安裝

e. httperror: 403 client error: the credential associated with user 'bunshinn' isn't allowed to upload to project 'bstools'. see for more information. for url: 若出現類似錯誤, 模組命已被占用,可更換模組名重試

五. pip安裝緩慢

可指定源進行安裝:

pip install -i --trusted-host pypi.douban.com pkgname

python打包使用者自定義模組

假設需要打包的模組檔名為my.py,打包模組需要新建的乙個指令碼setip.py,然後在指令碼下輸入如下的內容 from disutils.core import setup setup以管理員身份執行cmd,進入my.py的目錄,執行下面的命令即可打包 python setup.py sdist執...

python 自定義 包 模組 打包 安裝

1 把自定義模組的路徑,匯入sys.path,可以在任何地方直接匯入自定義模組。import sys print sys.path 2 匯入自定義包下的模組 包匯入路徑內的每個目錄內都必須有 init py檔案,init py可包含python 但通常為空,僅用於扮演包初始化的掛鉤,替目錄產生模組的...

製作自定義CSDNBLOG面板

如果你已經有了乙個比較個性化的計數器的話,下面我教你如何為csdnblog製作自定義 的功能,如果你沒有並且需要為你的csdnblog新增乙個個性化計數器的話,可以參閱我寫的另一篇文章。關於給csdnblog新增計數器 1 使用系統定義 系統為我們已經提供了幾個定義好的 介面,我們可以通過 選項 配...