在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 如何調(diào)用多個文件夾中的python文件?

如何調(diào)用多個文件夾中的python文件?

像這樣:

-- src
    |-- mod1
    |   `-- m1.py
    |-- mod2
    |   `-- m2.py
    |-- mod3
    |   `-- m3.py
    |-- mod4
    |   `-- m4.py

我在執(zhí)行 m4.py 時需要導入 mod2 文件夾下的 mod2.py 以及 mod3 文件夾下的 mod3.py, 每個小文件夾里都建了 __init__.py 文件。

開始我用 from mod2 import m2 ,from mod3 import m3 來導入,但報錯,說沒有 mod2 這個 module,然后我在網(wǎng)上查了,改成用

import sys
sys.path.append('F:\\xxx\\mod2')
import m2

這樣可以導入
但是我不止導入一個,所以我在下面跟著寫了:

import sys
sys.path.append('F:\\xxx\\mod3')
import m3

結(jié)果報錯說沒有 module named m3
我就不知道怎么搞了,importfrom import 的解釋 看來看去我都暈了

請大神不吝賜教?。。?/p>

回答
編輯回答
掛念你

先回答題主代碼中的2個問題:

  1. import引入的是包(package),而不是文件夾,Python中如果一個文件夾內(nèi)存在__init__.py文件時,這個文件夾會被當成是一個包,而非普通的文件夾。
  2. sys.path.append的意思是將這個路徑添加到Python解釋器的查詢路徑之中,可以認為是另一種import,但這種方式不如上一種方式來的直接。

綜上,建議樓主為每個文件夾添加__init__.py文件,有時間再仔細閱讀一遍基礎文檔。

2018年4月11日 17:38
編輯回答
風清揚

在src目錄下,寫一個__init__.py內(nèi)容如下

from .mod1 import m1
from .mod2 import m2
from .mod3 import m3
from .mod4 import m4

如果你的文件夾不打包的話,m4.py添加兩行代碼就行,如下

import sys
sys.path.append('../../')
from src import m2
from src import m3

如果打包發(fā)布,就不需要前兩行代碼了,當讓src要跟你的包名還有你的根文件名一致

2017年6月10日 13:45
編輯回答
凝雅

試一下:在Python安裝目錄下創(chuàng)建一個.pth文件,名字叫什么無所謂,比如叫src.pth。在這個文件中加入你的src目錄,比如是F:\pythonProject\src。Python會按照這個文件中的路徑來搜索你的自定義模塊。

2018年7月6日 03:33