首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在pythonanywhere中托管的应用程序中找不到文件

在pythonanywhere中托管的应用程序中找不到文件
EN

Stack Overflow用户
提问于 2018-06-27 19:22:36
回答 1查看 796关注 0票数 3

这里有一个答案-- File not found on pythonanywhere.com

但在我的情况下就行不通了。

我已经把这个文件放在了项目主目录和/project/static目录中-

我的代码是-

代码语言:javascript
运行
复制
from flask import Flask, render_template, request
from flask_cors import CORS, cross_origin
from diffdiag import DifferentialDiagScript2 as dd
import os

app = Flask(__name__)
app.config['CORS_HEADERS'] = 'Content-Type'
cors = CORS(app, resources={r"/*": {"origins": "*"}})

@app.route('/')
@cross_origin()
def index():
    module_dir = os.path.dirname(__file__)
    file_path = os.path.join(module_dir, 'literature.csv')
    items = list(line.strip() for line in open(file_path))
    return render_template('index.html', table = items)

我也试过了-

代码语言:javascript
运行
复制
items = list(line.strip() for line in open(f2))

items = list(line.strip() for line in open('./static/f2'))

items = list(line.strip() for line in open('/home/daddyodevil/add/Automated_DD/f2'))

items = list(line.strip() for line in open('/home/daddyodevil/add/Automated_DD/static/f2'))

似乎什么都不起作用。

任何帮助都是非常感谢的。

编辑1-添加完整错误

代码语言:javascript
运行
复制
Exception on / [GET]#012Traceback (most recent call last):#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app#012    response = self.full_dispatch_request()#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request#012    rv = self.handle_user_exception(e)#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask_cors/extension.py", line 161, in wrapped_function#012    return cors_after_request(app.make_response(f(*args, **kwargs)))#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception#012    reraise(exc_type, exc_value, tb)#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise#012    raise value#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request#012    rv = self.dispatch_request()#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request#012    return self.view_functions[rule.endpoint](**req.view_args)#012  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask_cors/decorator.py", line 128, in wrapped_function#012    resp = make_response(f(*args, **kwargs))#012  File "/home/daddyodevil/add/Automated_DD/app.py", line 13, in index#012    items = list(line.strip() for line in open("./static/f2"))#012FileNotFoundError: [Errno 2] No such file or directory: './static/f2'

编辑2-尝试在pythonanywhere中运行app.py时收到添加错误

代码语言:javascript
运行
复制
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "/home/daddyodevil/add/Automated_DD/app.py", line 47, in <module>
    app.run()
  File "/home/daddyodevil/.local/lib/python3.6/site-packages/flask/app.py", line 943, in run
    run_simple(host, port, self, **options)
  File "/home/daddyodevil/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 814, in run_simple
    inner()
  File "/home/daddyodevil/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 774, in inner
    fd=fd)
  File "/home/daddyodevil/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 660, in make_server
    passthrough_errors, ssl_context, fd=fd)
  File "/home/daddyodevil/.local/lib/python3.6/site-packages/werkzeug/serving.py", line 577, in __init__
    self.address_family), handler)
  File "/usr/lib/python3.6/socketserver.py", line 453, in __init__
    self.server_bind()
  File "/usr/lib/python3.6/http/server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "/usr/lib/python3.6/socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [Errno 98] Address already in use
EN

回答 1

Stack Overflow用户

发布于 2018-06-28 19:37:57

在PythonAnywhere控制台中运行app.py是不太可能的--它将尝试绑定到一个端口并侦听连接,并且完全有可能其他人正在使用该端口。

您在网站错误日志中看到的问题是因为您试图打开文件'./static/f2'。此路径必须相对于运行应用程序的目录进行解析,该目录不一定与包含模块的目录相同,也可能不是主目录。

如果您想要加载与模块位于同一目录中的模块,并且您已经有了用于计算模块目录的代码,则如下所示

代码语言:javascript
运行
复制
module_dir = os.path.abspath(os.path.dirname(__file__))

...then您可以通过更改以下行来更改代码以使用该module_dir

代码语言:javascript
运行
复制
items = list(line.strip() for line in open("./static/f2"))

...to是这样的:

代码语言:javascript
运行
复制
items = list(line.strip() for line in open(os.path.join(module_dir, "./static/f2")))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51061525

复制
相关文章

相似问题

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