Python中import導入上一級目錄模塊及循環import問題的解決

轉自:https://www.cnblogs.com/sjy18039225956/p/9265461.htmlhtml

使用python進行程序編寫時,常常會使用第三方模塊包。這種包咱們能夠經過python setup install 進行安裝後,經過import XXX或from XXX import yyy 進行導入。不過若是是本身遍寫的依賴包,又不想安裝到python的相應目錄,能夠放到本目錄裏進行import進行調用;爲了更清晰的理清程序之間的關係,例如咱們會把這種包放到lib目錄再調用。本篇就針對常見的模塊調用方法彙總下。python

1、同級目錄下的調有app

程序結構以下:spa


-- src
    |-- mod1.py
    |-- test1.pycode


若在程序test1.py中導入模塊mod1, 則直接使用htm

import mod1

from mod1 import *;blog

2、調用子目錄下的模塊接口


程序結構以下:ci

-- src
    |-- mod1.py
    |-- lib
    |    |-- mod2.py
    |-- test1.pystring


這時看到test1.py和lib目錄(即mod2.py的父級目錄),若是想在程序test1.py中導入模塊mod2.py ,能夠在lib件夾中創建空文件__init__.py文件(也能夠在該文件中自定義輸出模塊接口),而後使用:

from lib.mod2 import *

import lib.mod2.


3、調用上級目錄下的文件


程序結構以下:

-- src
    |-- mod1.py
    |-- lib
    |    |-- mod2.py
    |-- sub
    |    |-- test2.py


這裏想要實現test2.py調用mod1.py和mod2.py ,作法是咱們先跳到src目錄下面,直接能夠調用mod1,而後在lib上當下建一個空文件__init__.py ,就能夠像第二步調用子目錄下的模塊同樣,經過import  lib.mod2進行調用了。具體代碼以下:

1
2
3
4
import sys
sys.path.append( ".." )
import mod1
import mod2.mod2
相關文章
相關標籤/搜索