首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >openshift上的烧瓶项目根目录

openshift上的烧瓶项目根目录
EN

Stack Overflow用户
提问于 2015-06-21 13:51:23
回答 3查看 241关注 0票数 2

我开始使用烧瓶,并将我的应用程序部署到openshift。

我的应用程序代码:

代码语言:javascript
运行
复制
def get_users():
    f = open('./users.txt')
    ....

当我跑步时:

代码语言:javascript
运行
复制
$ 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上在本地工作得很好。解决这个问题的最好方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-21 14:24:43

您应该可以这样做才能获得应用程序的目录:

代码语言:javascript
运行
复制
user_file = os.path.abspath(os.path.join(os.path.dirname(__file__), "./users.txt"))

这就是我对heroku所做的。不要忘记____file___将是文件驻留的目录。这可能是也可能不是您的应用程序根文件夹。

票数 2
EN

Stack Overflow用户

发布于 2015-06-21 14:52:12

一般情况下,不应该用纯字符串编写路径。这是危险的工作时,跨平台。请使用osos.path中的函数。

票数 1
EN

Stack Overflow用户

发布于 2015-06-22 14:49:05

不要忘记,在openshift上,您只能在$OPENSHIFT_DATA_DIR下创建/编写文件,所以我个人使用以下方法。

代码语言:javascript
运行
复制
DATA_DIR = os.environ.get('OPENSHIFT_DATA_DIR', ".")
def get_users():
    f = open(os.path.join(DATA_DIR,'users.txt')

如果需要,我使用rhc scp复制文件以纠正位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30965243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档