"Address already in use" 使用 cookiecutter-flask 时出错

"Address already in use" error when using cookiecutter-flask

我在 OS X 10.14.3。我正在尝试使用漂亮的 cookiecutter-flask 项目。我已按照 README.rst:

中的说明进行操作
cookiecutter https://github.com/sloria/cookiecutter-flask.git
# I named my test ccflask, and used pipenv
cd ccflask
cp .env.example .env
pipenv install --dev
npm install
npm start

README 表示此时 "You will see a pretty welcome screen." 相反,它只是服务于 ccflask/.

中的目录结构

这似乎是因为 flask 从未启动:

[FLASK] Loading .env environment variables...
[WEBPACK] Project is running at http://localhost:2992/
[WEBPACK] webpack output is served from http://localhost:2992/static/build/
[FLASK]  * Serving Flask app "autoapp.py" (lazy loading)
[FLASK]  * Environment: development
[FLASK]  * Debug mode: on
[FLASK] Traceback (most recent call last):
[FLASK]   File "/Users/nick/.local/share/virtualenvs/ccflask-bmCIsVly/bin/flask", line 10, in <module>
[FLASK]     sys.exit(main())
[…stack…]
[FLASK]     s.bind(get_sockaddr(hostname, port, address_family))
[FLASK] OSError: [Errno 48] Address already in use
[FLASK] npm ERR! code ELIFECYCLE
[FLASK] npm ERR! errno 1
[FLASK] npm ERR! ccflask@1.0.0 flask-server: `pipenv run flask run`
[FLASK] npm ERR! Exit status 1
[FLASK] npm ERR! 
[FLASK] npm ERR! Failed at the ccflask@1.0.0 flask-server script.
[FLASK] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我是 npm 和 webpack 的新手,所以我不太清楚问题出在哪里。当我搜索 2992 时,我在 package.json:

中找到它
"webpack-dev-server": "NODE_ENV=debug webpack-dev-server --port 2992 --hot --inline",

还有webpack.config.js:

const publicHost = debug ? 'http://localhost:2992' : '';

我不知道这看起来对不对,但我想对吧?控制台喷出非常明确地说明了从同一端口上的不同文件夹提供的 flask 应用程序和 webpack 开发服务器。我在 2992 上绝对没有其他 运行,因为一旦我杀死 npm,localhost:2992 就会停止响应 Web 请求。我还确定了 ps 的输出。 npm start 进程似乎确实试图使用同一端口启动两个服务。

某些依赖关系是否已更改?在 npm install 期间,我收到了这些警告:

npm WARN css-loader@1.0.1 requires a peer of webpack@^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN less-loader@2.2.3 requires a peer of less@^2.3.1 but none is installed. You must install peer dependencies yourself.
npm WARN url-loader@1.1.2 requires a peer of webpack@^3.0.0 || ^4.0.0 but none is installed. You must install peer dependencies yourself.

但是 node_modules 中有一个 webpack 目录,还有 webpack-sourceswebpack-dev-*… 所以我没主意了。

如有任何帮助,我们将不胜感激。

确实存在端口冲突,但与 2992 没有冲突。问题是我已经 运行 端口 5000 上的一个不同的烧瓶应用程序。一旦我关闭它,cookiecutter 代码就会按预期工作。感谢 GitHub 上的 kkremitzki 帮助我解决了这个问题。