python 自定义模块的发布和安装
[學習筆記]
自定義模塊?
使用的是pycharm?
說白了就是.py文件都可以作為模塊導入,像定義一個文件 名字為Mycode
__all__ = ["add","sub","mul","div"] ?# 設置此方法 可以使用導入模塊 from Mycode import *
def add(a,b):#寫入自定義方法
? ? return a + b
def sub(a,b):
? ? return a - b
def mul(a,b):
? ? return a * b
def div(a,b):
? ? return a / b
if __name__ == "__main__":#限制條件 就是導入這個模塊時不執(zhí)行以下代碼 而在這個文件可以執(zhí)行 ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ? ? ? ?因為 name和 main 就是文件名 導入后__main__文件名就發(fā)生改變
? ? a = 10
? ? b = 20
? ? print(add(a,b)) >>30
在發(fā)布自定義模塊之前先談導入模塊 有兩種方式 import+導入的模塊 和 from.....import .....都熟悉不再詳寫
還有創(chuàng)建一個包package文件,其實充當文件夾的意思,可以有效的避免重復,包中包含__init__文件,可以在文件中設置起到輔助導入模塊作用。導入時就直接加上包名就可以。
可能還會出現(xiàn)無法導入的問題,注意導入時留意目錄結構,若是三級目錄要連同二級目錄一起導入,同時目錄名不要寫數(shù)字。
若是要在別的項目中也要導入此模塊就涉及到模塊的發(fā)布安裝。
導入模塊前要檢查路徑,若是系統(tǒng)查找模塊路徑中沒有就要添加路徑,以及要注意路徑搜查順序是依次執(zhí)行的
import sys #導入sys模塊
sys.path.append("要添加的路徑")注意路徑符號 “\” 反斜杠表示轉義 報錯時可以使用 “\\” 或直接使用 “/”?
如sys.path.append(“E;/preactive/dayis”) 就可以使用導入模塊
自定義模塊發(fā)布安裝
在同文件夾下生成set.up為名的函數(shù)
編輯setup文件
from distutils.core import setup
setup(name='壓縮包的名字',version='1.0',description='描述',
author='me"',py_modules=['package1.模塊1','package1.模塊2',
'package2.模塊1'])#為模塊名 一個就寫一個即可 ,使用的是包和set.up文件
編輯完成將包(包內(nèi)有__init__文件和Mycode文件)和set.up文件復制到桌面并創(chuàng)建文件夾
在文件夾路徑格中直接打cmd 就出現(xiàn)命令提示符 就省去復制路徑的功夫?
?
要發(fā)布的目錄結構(uft-8格式)
?
|----setup.py
|----package1
????|----module1
????|----module2
|----package2
????|----module3
????|----module4
構建模塊
?
DOS窗口找到該文件
python setup.py build ?
生成發(fā)布壓縮包
?
python setup.py sdist
自定義模塊的安裝、使用
安裝的方式
找到模塊的壓縮包
解壓
進入文件夾
執(zhí)行命令 python setup.py install
注意:如果在install的時候,
指定目錄安裝,可以使用
python setup.py install --prefix=安裝路徑
暴力安裝
不提倡,文件繁多誤刪會很難恢復
直接將包復制到??pycharm 中 項目底部 External libraries --python3.6--lib --site-packages?
C:\Program Files\Python36\Lib\site-packages
版權聲明:本文為轉載文章,原文地址:https://blog.csdn.net/Chujianlong321/article/details/89075185
轉載于:https://www.cnblogs.com/haima1949/p/10773798.html
總結
以上是生活随笔為你收集整理的python 自定义模块的发布和安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在同一基准下对前端框架进行比较(2019
- 下一篇: websocket python爬虫_p