Python 脚本入口点为的Flask无法使用ENV var端口运行
我有一个小烧瓶应用程序,我在它的setup.py中定义了一个Python 脚本入口点为的Flask无法使用ENV var端口运行,python,flask,Python,Flask,我有一个小烧瓶应用程序,我在它的setup.py中定义了一个入口点: entry_points={ 'console_scripts': ['myapp = myapp.__main__:main'] }, 我的app.py文件如下所示: app = Flask(__name__) # ... All my views here if __name__ == '__main__': app.run( port=int(os.environ.get('PORT
入口点
:
entry_points={
'console_scripts': ['myapp = myapp.__main__:main']
},
我的app.py
文件如下所示:
app = Flask(__name__)
# ... All my views here
if __name__ == '__main__':
app.run(
port=int(os.environ.get('PORT', 8000)),
debug=True)
如果我以PORT=9000 python myapp/app.py运行应用程序,我可以在localhost:9000正确访问该应用程序。但是,我正在尝试在入口点中执行相同的操作,该入口点指向我的\uuuu main\uuuuuu.py
文件,该文件是:
import os
from dragoman.app import app
if __name__ == '__main__':
app.run(
port=int(os.environ.get('PORT', 8000)),
debug=True)
如果我尝试运行PORT=9000 myapp
时出现以下错误,则此操作无效:
File "/lib/python3.6/site-packages/werkzeug/serving.py", line 720, in run_simple
s.bind((hostname, port))
TypeError: an integer is required (got type str)
为什么它不能选择PORT
env变量,而且我没有传递env变量PORT
应用程序运行,但不是在我指定的默认端口8000上运行,而是在默认端口5000上运行。同时运行的PORT=7777 python-m myapp
在指定的端口上运行良好
我遗漏了什么?错误可能来自其他地方,因为您设置了port
而不是int()
值,虽然异常显示port
不是整数。我不明白为什么它会与port=7777 python-m myapp
一起运行,而不是与port=7777 myapp
一起运行。我怀疑有什么东西也在查看sys.argv
并从中获取字符串。您必须对此进行调试,向生成的脚本文件添加一个pdb.set_trace()
调用并从那里开始执行?错误可能来自其他地方,因为您设置了port
而不是int()
值,虽然异常显示port
不是整数。我不明白为什么它会与port=7777 python-m myapp
一起运行,而不是与port=7777 myapp
一起运行。我怀疑有什么东西也在查看sys.argv
并从中获取字符串。您必须对此进行调试,向生成的脚本文件添加一个pdb.set_trace()
调用,然后从那里开始?