Python 脚本入口点为的Flask无法使用ENV var端口运行

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

我有一个小烧瓶应用程序,我在它的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', 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()
调用,然后从那里开始?