2015-06-21 98 views
2

我正在開始使用flask,並且正在將我的應用程序部署到openshift。openshift上的Flask項目根目錄

我的應用程序代碼:

def get_users(): 
    f = open('./users.txt') 
    .... 

當我運行:

$ rhc tail flaskpq 

我看到:

[Sun Jun 21 09:05:20 2015] [error] [client 127.2.78.1] f = open('./user.txt') [Sun Jun 21 09:05:20 2015] [error] [client 127.2.78.1] IOError: [Errno 2] No such file or directory: './users.txt'

我懷疑是我的親戚參考我的項目users.txt根目錄在部署到openshift時不再有效。它在win7本地運行良好。解決這個問題的最好方法是什麼?

回答

2

你應該能夠做這樣的事情,以獲取應用程序的目錄:

user_file = os.path.abspath(os.path.join(os.path.dirname(__file__), "./users.txt")) 

這是我在Heroku做。不要忘記____file___將是該文件所在的目錄。這可能是也可能不是您的應用程序根文件夾。

+0

謝謝,這似乎工作。 – user61629

1

您通常不應該在純字符串中編寫路徑。跨平臺工作時這很危險。請使用osos.path中的功能。

1

不要忘記,在openshift中,您只能在$OPENSHIFT_DATA_DIR之下創建/寫入文件,所以我個人使用以下方法。

DATA_DIR = os.environ.get('OPENSHIFT_DATA_DIR', ".") 
def get_users(): 
    f = open(os.path.join(DATA_DIR,'users.txt') 

如果需要,我使用rhc scp複製文件以更正位置。