python引入自己的包


兩種辦法:

一、在文件夾下添加一個名為 __init__.py 的文件,文件內什么都不需要寫

我的目錄結構是這樣的:

pythonproject\main\data\test.py
pythonproject\main\common\mysqlutil.py
pythonproject\main\common\__init__.py

這樣我在 test.py 中引入mysqlutil

# test.py
import os
import sys

# 我自己的在項目里的模塊
from main.common import mysqlutil

def test1():
    mysqlutil.print()
    
def main():
    test1()

# 判斷是否是程序主入口而已,如果是程序主入口,則代碼塊執行,否則代碼塊不執行
# 主要用於別人調用此代碼時,不要進入該代碼的入口
if __name__ == "__main__":
    main()

或者

# test.py
import os
import sys

# 我自己的在項目里的模塊
import main.common.mysqlutil

def test1():
    main.common.mysqlutil.print()
    
def mymain():
    test1()

# 判斷是否是程序主入口而已,如果是程序主入口,則代碼塊執行,否則代碼塊不執行
# 主要用於別人調用此代碼時,不要進入該代碼的入口
if __name__ == "__main__":
    mymain()  # 名字不能和包的名字相同

 或者

# test.py
import os
import sys

# 我自己的在項目里的模塊
from main.common.mysqlutil import *

def test1():
    print()  # 直接可以調用mysqlutil的方法, 這里也可以是類
    
def main():
    test1()

# 判斷是否是程序主入口而已,如果是程序主入口,則代碼塊執行,否則代碼塊不執行
# 主要用於別人調用此代碼時,不要進入該代碼的入口
if __name__ == "__main__":
    main()

 

二、

python報錯ModelNotFoundError

很可能是因為工作目錄並不在sys.path中,系統無法默認的找到您的腳本文件,通過以下命令可以解決該問題:

>>> import sys
>>> sys.path.append('d:\python_test')    #括號內為工作文件夾路徑
>>> import mymodel #引用的模塊

 

查看配置的路徑: 在python命令行中或者.py文件里

import sys
sys.path

 

 通過如下命令添加路徑:

sys.path.append("C:\Users\DELL\Desktop\test")

這樣這個路徑就被添加進來。

在python的項目中,py文件里,我們可以用如下方法

我的文件目錄是這樣的

pythonproject\main\data\test.py
pythonproject\main\common\mysqlutil.py

 

# test.py
import
os import sys projectname = 'pythonproject' # 獲取當前文件的目錄 curPath = os.path.abspath(os.path.dirname(__file__)) # print(curPath) # 從后往前匹配項目 # path = curPath[0: curPath.rfind(projectname)] rootPath = curPath[0: curPath.rindex(projectname)] + projectname print(rootPath) #括號內為工作文件夾路徑 #引用的模塊 # sys.path.append(r'\path\to\file\pythonproject\main\common') # import mysqlutil # sys.path.append(r'\path\to\file\pythonproject') # import main.common.mysqlutil # from main.common import mysqlutil #sys.path.append(rootPath) sys.path.append(rootPath) # 我自己的在項目里的模塊 from main.common import mysqlutil def test1(): print() def main(): test1() # 判斷是否是程序主入口而已,如果是程序主入口,則代碼塊執行,否則代碼塊不執行 # 主要用於別人調用此代碼時,不要進入該代碼的入口 if __name__ == "__main__": main()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM