我开始使用烧瓶,并将我的应用程序部署到openshift。
我的应用程序代码:
def get_users():
f = open('./users.txt')
....当我跑步时:
$ rhc tail flaskpq我看到:
孙俊21 :05:20 2015 client 127.2.78.1 f= open('./user.txt')孙俊21 09:05:20 2015 client 127.2.78.1 IOError: Errno 2没有这样的文件或目录:'./users.txt‘
我怀疑我在项目根目录中对users.txt的相对引用在部署到openshift时不再有效。它在win7上在本地工作得很好。解决这个问题的最好方法是什么?
发布于 2015-06-21 14:24:43
您应该可以这样做才能获得应用程序的目录:
user_file = os.path.abspath(os.path.join(os.path.dirname(__file__), "./users.txt"))这就是我对heroku所做的。不要忘记____file___将是文件驻留的目录。这可能是也可能不是您的应用程序根文件夹。
发布于 2015-06-21 14:52:12
一般情况下,不应该用纯字符串编写路径。这是危险的工作时,跨平台。请使用os和os.path中的函数。
发布于 2015-06-22 14:49:05
不要忘记,在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复制文件以纠正位置。
https://stackoverflow.com/questions/30965243
复制相似问题