python相对路径找不到文件_Python相对路径从子文件夹导入
首先發(fā)布到SO,所以如果我錯過了一些細節(jié),請原諒我。
有沒有辦法使用來自另一個子文件夾的相對路徑而不需要通過os修改sys.path?最終這將從cgi網(wǎng)絡(luò)服務(wù)器運行,所以我寧愿遠離python.exe的任何-m參數(shù)。
我正在使用Python 2.7.3并且具有以下文件/目錄結(jié)構(gòu):
| myprog.py
|
+---functions
| myfunctions.py
| __init__.py
|
\---subfolder
mysub.py
在root中,我有一個名為myprog.py的單個.py文件:
#file .\myprog.py
from functions import *
hello("Hi from Main")
在functions文件夾中我有兩個文件,init .py,myfunctions.py:
#The File: functions\__init__.py :
from myfunctions import *
#The File: functions\myfunctions.py :
def hello(sometext):
print sometext
最后,在子文件夾中,我有:
#The File: subfolder\mysub.py :
from ..functions import *
hello("Hi From mysubprogram")
myprog.py執(zhí)行正常(從父文件夾運行python.exe myprog.py時),打印“Hi From Main”,然而,mysub.py(從子文件夾執(zhí)行時)不斷輸出錯誤:< i> ValueError:在非包中嘗試相對導(dǎo)入
我在mysub.py中嘗試了不同的組合,例如來自..functions.myfunctions import *但是沒有產(chǎn)生所需的結(jié)果。
但是無法弄清楚這一點。哦,一旦我開始工作,我想盡可能刪除import *,但是,每次調(diào)用時我都不必將完整路徑放到hello函數(shù)中,所以任何建議都在那里或者清理init.py(使用所有或以其他方式)將是一個獎勵。
其中,如果我要求的是不可能的,也許我問錯了。如果這只是一個徹頭徹尾的壞習慣,是使用sys.path實現(xiàn)目標的正確方法,還是有人可以推薦的其他內(nèi)容(比如不調(diào)用../folders中的函數(shù))?
總結(jié)
以上是生活随笔為你收集整理的python相对路径找不到文件_Python相对路径从子文件夹导入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python抖音github_GitHu
- 下一篇: python 数组写txt_python