Python openshift上的Flask项目根目录
我开始使用flask,并将我的应用程序部署到openshift 我的应用程序代码:Python openshift上的Flask项目根目录,python,flask,openshift,Python,Flask,Openshift,我开始使用flask,并将我的应用程序部署到openshift 我的应用程序代码: def get_users(): f = open('./users.txt') .... 当我跑步时: $ rhc tail flaskpq 我明白了: [Sun Jun 21 09:05:20 2015][error][client 127.2.78.1]f= 打开('./user.txt')[Sun Jun 21 09:05:20 2015][error][client 127.2.78
def get_users():
f = open('./users.txt')
....
当我跑步时:
$ rhc tail flaskpq
我明白了:
[Sun Jun 21 09:05:20 2015][error][client 127.2.78.1]f=
打开('./user.txt')[Sun Jun 21 09:05:20 2015][error][client
127.2.78.1]IOError:[Errno 2]没有这样的文件或目录:'./users.txt'
我怀疑我对项目根目录中users.txt的相对引用在部署到openshift时不再有效。它在win7本地运行良好。修复此问题的最佳方法是什么?您应该能够执行类似操作以获取应用程序的目录:
user_file = os.path.abspath(os.path.join(os.path.dirname(__file__), "./users.txt"))
这就是我在heroku上所做的。不要忘记,文件将是文件所在的目录。这可能是也可能不是您的应用程序根文件夹。通常不应以纯字符串形式写入路径。在跨平台工作时,这是危险的。请使用
os
和os.path
中的函数 不要忘记,在openshift上,您只能在$openshift\u DATA\u DIR
下创建/写入文件,因此我个人使用以下方法
DATA_DIR = os.environ.get('OPENSHIFT_DATA_DIR', ".")
def get_users():
f = open(os.path.join(DATA_DIR,'users.txt')
如果需要,我使用rhc scp
将文件复制到正确的位置