python 本機發布模組後匯入模組並使用過程中出現的問題(待解決)
高中教科版資訊科技必修1《資料與計算》第二章第四節P43-44涉及到的釋出共享程式碼匯入模組並使用:
一、釋出程式碼:
(一)準備工作:
1.建立資料夾:
D:\mymodule
2.放入釋出所需的檔案
mymodule.py
setup.py
注:mymodule.py是一個模組檔案,其內容就是match_num函式。程式碼如下所示:
1 def match_num(num): 2 f=[6,2,5,5,4,5,6,3,7,6] # 0-9的數字分別需要多少根小棒 3 if num==0: # 火柴棒總數變數賦初值 4 total=f[0]5 else: 6 total=0 7 while (num>0): 8 x=num % 10 # 取num除以10的餘數,即num的個位數 9 total=total+f[x] # 所需火柴棒數累加 10 num=num//10 #num整除10,即去掉num的個位數 11 return total #返回需要多少根火柴棒數
setup.py檔案包含有關釋出的無資料,程式碼如下:
1 from distutils.core import setup 2 setup(3 name ='mymodule', #引數一定要與mymodule.py檔名相同 4 version ='1.0.0', #版本號 5 py_modules =['mymodule'], #引數一定要與mymodule.py檔名相同 6 author='yd', #作者 7 author_email='[email protected]', #作者郵箱 8 description ='計算一個數字需要多少根火柴棒', #程式碼功能描述 9 )
(二)程式碼釋出:
在DOS命令列中開啟mymodule所在的目錄,構建釋出檔案,具體操作過程如圖所示。
1.在DOS命令列中開啟d:\mymodule目錄。
2.執行python安裝路徑下的:python setup.py sdist
(其中:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\ 為python的安裝路徑。)
3.最後將釋出安裝到python本地副本中 ,如圖所示:
執行python安裝路徑下的:python setup.py install
(其中:C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\為python的安裝路徑。)
4.安裝完成後,mymodule資料夾包含如圖所示的檔案
二、匯入模組並使用:
已經發布的模組必須先匯入程式,然後才能使用。可以使用“import mymodule”匯入,呼叫模組內的函式時用“mymodule.match_num()”來實現。
發現問題:
1、在匯入模組時會出現這樣的錯誤
解決方法:把釋出的模組資料夾放到python 安裝目錄中的site_packages中才可以被引用而不報錯
能成功引用:
匯入模組並使用
1 import mymodule #匯入模組 2 snum=6 # 6根火柴棒 3 print("你可以拼出這些數字:") 4 for i in range(112): 5 if mymodule.match_num(i)==snum: #呼叫模組內match_num()函式 6 print (i) 7 8 input("執行完畢,請按回車鍵退出...")
出現問題如下:
這個問題怎麼解決呢?已經困擾我兩天了!!!