weijiang1994 / Blogin

A blog system depend on flask.使用flask框架开发的个人博客系统.
https://2dogz.cn
GNU General Public License v3.0
509 stars 99 forks source link

部署到aws ec2  上 flask run [OPTIONS] Error: Could not locate Flask application. #17

Closed tianke0711 closed 3 years ago

tianke0711 commented 3 years ago

我尝试着简单部署到aws ec2 ubuntu上 我运行flask run出现了下面问题,我没有用venv环境。我需要修改哪些地方啊。

flask run Usage: flask run [OPTIONS]

Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.

For more information see http://flask.pocoo.org/docs/latest/quickstart/

我是通过pycharm上传的 我在ubuntu 根目录建了一个项目文件夹,然后上传blogin文件的这个项目文件夹下面。

weijiang1994 commented 3 years ago

在项目根目录新建.flaskenv文件,在其中输入以下内容

FLASK_APP=blogin
FLASK_ENV=production
tianke0711 commented 3 years ago

我把以前的development哪个删除了,写了以下的。 $ nano .flaskenv

GNU nano 2.9.3 .flaskenv

FLASK_APP=blogin FLASK_ENV=production

还是老问题

flask run Usage: flask run [OPTIONS]

Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.

For more information see http://flask.pocoo.org/docs/latest/quickstart/

tianke0711 commented 3 years ago

我在terminal设置了 export FLASK_APP=blogin

flask run Usage: flask run [OPTIONS]

Error: The file/path provided (blogin) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py

weijiang1994 commented 3 years ago

用虚拟环境试下

cd Blogin
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
flask run
weijiang1994 commented 3 years ago

还有看看有没有安装python-dotenv这个库

tianke0711 commented 3 years ago

@weijiang1994 安装好python-dotenv 有这个错误。

flask run

Error: While importing 'blogin', an ImportError was raised.

weijiang1994 commented 3 years ago

看看运行flask run的执行路径是否有误。

tianke0711 commented 3 years ago

@weijiang1994
我运行flask run就是上面的哪个错误 Error: While importing 'blogin', an ImportError was raised.

执行路径是否有误。--->执行路径啥意思

weijiang1994 commented 3 years ago

就是你是不是在Blogin文件夹下面执行的flask run

tianke0711 commented 3 years ago

@weijiang1994 我是在Blogin文件夹下面 不过这个文件夹是我ubuntu建的,因为pycharm上传的时候 好像只是把local里的Blogin里的所有文件全部上传,并没有上传文件夹Blogin。所以我在ec2 ubuntu重新建了一个Blogin文件夹。然后local直接把Blogin里python文件上传上去。

weijiang1994 commented 3 years ago

建议用git操作,你不是fork了我的仓库吗,你把你的修改提交到你fork的远程仓库中去,然后在云服务器上直接git clone你的代码

tianke0711 commented 3 years ago

好的 我也试试。我想知道啥原因导致运行不行

tianke0711 commented 3 years ago

试了git clone的方法 ubuntu服务器 同样的错误

weijiang1994 commented 3 years ago

信任我的话,可以把你aws服务器的 IP 登录名 登录密码 发我邮箱 804022023@qq.com,我帮你部署

tianke0711 commented 3 years ago

@weijiang1994 可以啦 gitclone后,建立。flaskenv文件。我把production改成development。 很感谢你的热情。 刚开始的时候production

tianke0711 commented 3 years ago

flask run

weijiang1994 commented 3 years ago

ok

tianke0711 commented 3 years ago

@weijiang1994 flask run运行后,我想打开aws url地址看看像local那样。 但是打开就是错误。 浏览器不能连接到服务器。我昨天测试简单的flask app是可以的

weijiang1994 commented 3 years ago

flask run --host=0.0.0.0

tianke0711 commented 3 years ago

我运行啦 还是这样的问题 flask run --host=0.0.0.0

weijiang1994 commented 3 years ago

亚马逊服务器IP多少?

tianke0711 commented 3 years ago

52.197.136.131

weijiang1994 commented 3 years ago

图片 你这地址ping不通

tianke0711 commented 3 years ago

是这个 我也ping不成功

tianke0711 commented 3 years ago

是不是要把上次测试flask的log删除掉啊, 那个简单的测试app

weijiang1994 commented 3 years ago

ping不通说明你服务器有问题,跟这个没啥关系。你买的亚马逊哪个地区的?ping不通可能是国内防火墙把这个IP屏蔽掉了。

tianke0711 commented 3 years ago

我买的tokyo地区

weijiang1994 commented 3 years ago

那国内大概率裸连不上,国内的腾讯云也不错,为什么要买亚马逊的呢...

weijiang1994 commented 3 years ago

图片

tianke0711 commented 3 years ago

不是买 可以免费用一年

weijiang1994 commented 3 years ago

腾讯云新用户也很便宜的,可以看看双十一的活动

tianke0711 commented 3 years ago

@weijiang1994  好的。 你这个是app.run(host="0.0.0.0", port=80)在哪里 可能是不是端口的关系

tianke0711 commented 3 years ago

@weijiang1994 刚关掉。flask run后上面问题又出现啦

flask run

Error: While importing 'blogin.blogin', an ImportError was raised.

weijiang1994 commented 3 years ago

应该是你的项目结构路径有问题我从来没有遇到过这种问题

weijiang1994 commented 3 years ago

没解决的话,可以把你服务器登录的相关信息发我邮箱,我可以登录帮你看一下。

tianke0711 commented 3 years ago

@weijiang1994 我过几天再试试 不行再找你。

tianke0711 commented 3 years ago

@weijiang1994 我在服务器测试简单程序的flask run可以啊 为啥在 blogin说有问题啊 我想问一下 你程序里application.run(host='0.0.0.0') 在哪个python文件里?

为啥这里是 FLASK_APP=blogin FLASK_ENV=development

我看很多都是FLASK_APP=xx.py

tianke0711 commented 3 years ago

@weijiang1994 是不是这个文章的原因 https://zhuanlan.zhihu.com/p/128977263

tianke0711 commented 3 years ago

@weijiang1994 刚才执行以下 chmod 777 .env 成功了一次 ,但是运行停止后 重亲来flask run就又是同样的问题

tianke0711 commented 3 years ago

@weijiang1994 现在flask run OK啦 flask run

但是我发现并没有启动程序像local那样 flask run

但是我发现了一个问题 每次我安装好一个package后, 比如flask_caching flask run 又出现上面的错误

但是当我重新又pip3 install -r requirments.txt 我发现flask run可以 不过跟上面一样 没有启动像lcoal那样。

tianke0711 commented 3 years ago

@weijiang1994 现在可以像local那样运行啦。但是页面说无法连接到服务器

tianke0711 commented 3 years ago

Job "network_monitor (trigger: interval[0:01:00], next run at: 2021-10-24 09:12:02 UTC)" raised an exception Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.6/site-packages/apscheduler/executors/base.py", line 125, in run_job retval = job.func(*job.args, *job.kwargs) File "/home/ubuntu/SciSci/blogin/task.py", line 160, in network_monitor with open('/var/log/nginx/access.log', 'r') as f: FileNotFoundError: [Errno 2] No such file or directory: '/var/log/nginx/access.log' Job "network_monitor (trigger: interval[0:01:00], next run at: 2021-10-24 09:12:02 UTC)" raised an exception Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.6/site-packages/apscheduler/executors/base.py", line 125, in run_job retval = job.func(job.args, **job.kwargs) File "/home/ubuntu/SciSci/blogin/task.py", line 160, in network_monitor with open('/var/log/nginx/access.log', 'r') as f: FileNotFoundError: [Errno 2] No such file or directory: '/var/log/nginx/access.log'

tianke0711 commented 3 years ago

我想问一下 在服务器上没有用nginx部署 ,你的程序仅仅用flask run后 通过ip地址是可以访问的吧?

tianke0711 commented 3 years ago

240-215.ap-northeast-1.compute.amazonaws.com 拒绝了我们的连接请求。 请试试以下办法:

weijiang1994 commented 3 years ago

可以通过IP地址访问,但是你得确定你得IP地址能被国内访问到。

tianke0711 commented 3 years ago

现在打开后出现了 sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1698, "Access denied for user 'root'@'localhost'") (Background on this error at: http://sqlalche.me/e/13/e3q8)

weijiang1994 commented 3 years ago

数据库连接用户名、密码错了...

tianke0711 commented 3 years ago

@weijiang1994 show tables 咋是空的啊 我运行了flask db init啦

tianke0711 commented 3 years ago

use blog; Database changed mysql> mysql> show tables; Empty set (0.00 sec)