Django App 部署到 Google Cloud 的问题

2019-12-20 15:23:07 +08:00
 Henrybsbhp
最近写了一个接口项目想要部署到服务器上,服务器用的 Google Cloud,一切都还挺顺利。

生产环境中调用 python3 manage.py runserver 0.0.0.0:8000 命令后,使用外网 IP:8000 时不能访问。

检查了 8000 端口,有开放;
防火墙关闭也不行;

代码内应该也没问题,这样设置的:
DEBUG = True

ALLOWED_HOSTS = ['*']


请问还有什么样的原因导致无法访问呢?本人刚接触 Django,各位请多赐教。谢谢。
4241 次点击
所在节点    Python
28 条回复
Henrybsbhp
2019-12-20 17:09:07 +08:00
@pkuphy

感谢回复,

防火墙规则的 协议 /端口 已经全部设置为 all 了,还是不行。
Henrybsbhp
2019-12-20 17:24:57 +08:00
@wuwukai007

这样是可以了,但是用 sudo python manage.py runserver 0.0.0.0:8000 的话,回报错:

ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment varia
ble? Did you forget to activate a virtual environment?

很是无语啊。明明 Django 安装了,也在虚拟环境下了。
hflyf123
2019-12-20 17:26:38 +08:00
@Henrybsbhp 3 呢
Ciwei0526
2019-12-20 18:18:05 +08:00
@Henrybsbhp pip list 查看下是否存在 django,如果存在 看下当前 python 的路径对不对
Henrybsbhp
2019-12-20 19:30:40 +08:00
@Ciwei0526

感谢回复,不知道怎么搞的,问题突然解决了!
Henrybsbhp
2019-12-20 19:35:55 +08:00
@hflyf123

感谢跟进,问题已解决!
scriptB0y
2019-12-20 20:24:49 +08:00
@Henrybsbhp 你之前遇到的 Python3 这个命令找不到,是因为 sudo 的命令跟你在的 shell 环境变量不一样,找不到 Python,可以用 sudo -E 或者用 Python 的绝对路径,用 ln 放到 sudo 的路径下可以的。

Django 找不到是因为你的 Python 是这么来的 ln -s /usr/local/bin/python3 /usr/bin/python3,Python 找安装包的地放取决于 Python 所在的位置,所以 ln 之后就找不到了。
Henrybsbhp
2019-12-20 21:06:25 +08:00
@scriptB0y 学习到了!感谢指教,很受用!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX