2013-01-23 63 views
5

我的項目佈局如下:Python的 - 從項目的根文件加載相對

├ ... 
├── pve 
│   ├── blahblah 
│   │   ├── TestDefinition.py 
│   │   ├── TestDefinition.pyc 
│   │   ├── __init__.py 
│   │   └── __init__.pyc 
│   └── pve.py 
├── src 
│   └── definitions 
│    └── THISFILE.yml 
└── ... 

我需要能夠利用PVE/blahblah來從SRC /定義文件(THISFILE.yml爲例)/ TestDefinition.py類。

如何正確訪問項目根目錄?一旦我有了,我可以訪問相對的.yml文件。 TIA。

回答

10

我喜歡在項目根目錄中創建某種類型的配置文件,該文件具有根目錄的aboslute路徑。我這樣做只是因爲我通常使用的框架(django,scrapy)有這樣的約定

├ ... 
├── pve 
│ ├── blahblah 
│ │ ├── TestDefinition.py 
│ │ ├── TestDefinition.pyc 
│ │ ├── __init__.py 
│ │ └── __init__.pyc 
│ └── pve.py 
├── src 
│ └── definitions 
│  └── THISFILE.yml 
└── settings.py 



# settings.py 

import os 
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 
DEFINITIONS_ROOT = os.path.join(PROJECT_ROOT, 'src', 'definitions') 


from myproject import settings 
settings.DEFINITIONS_ROOT 
+0

酷 - 好主意。我是一個.py noob,所以我正在學習並嘗試不要從其他語言中拿太多的約定來學習'python的方式'。嘿嘿。 –

+3

@ dm03514您是否將'myproject'稱爲包含'pve'和'src'文件夾的項目根文件夾。我正在嘗試類似的東西,但從根目錄導入文件需要在項目根目錄下放置__init__文件。這是可取的嗎?謝謝。 – akskap

相關問題