最終更新:Ture P?lsson 解決了我的問題。非常感謝您的幫助!
我一直在關注這篇文章,試圖從頭開始創建我的第一個 Flask API。我不得不在作業中更新我的電腦,我認為我沒有事先成功關閉終端。
當我現在嘗試從我的專案的主目錄運行我的應用程式時,在標題為“使用 Flask 創建 RESTful 端點”的部分中,我得到了一個以以下內容結尾的長堆疊跟蹤:
File "/usr/local/Cellar/[email protected]/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 48] Address already in use
其他類似的問題表明這是由于另一個行程使用我試圖訪問的埠。為了解決這個問題,我使用了以下命令:
ps -fA | grep python
回傳:
501 12797 12759 0 11:15PM ?? 0:03.97 /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) --ms-enable-electron-run-as-node /Users/nfeldman1995/.vscode/extensions/ms-python.vscode-pylance-2021.12.0/dist/server.bundle.js --cancellationReceive=file:50e28be741e040fa2f7efc8dbdcf8a4ca200512639 --node-ipc --clientProcessId=12759
501 13126 12421 0 11:30PM ttys000 0:00.00 grep python
這就是我覺得很困惑的地方。其他文章表明我應該看到一行輸出如下:
502 89332 12877 0 3:40PM ttys00 0:00.15 python -m SimpleHTTPServer
但是,此輸出中似乎沒有任何內容在運行“SimpleHTTPServer”,因此我不知道要終止哪個行程。我試過用命令殺死其他兩個任務,kill <process#>但這并沒有解決問題。
轉到 localhost:5000(我試圖定位的埠)給我一個 404 錯誤。
更新:這是 lsof -i :5000 的輸出
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ControlCe 13218 nfeldman1995 27u IPv4 0xdf2d97d6ad526f5 0t0 TCP *:commplex-main (LISTEN)
ControlCe 13218 nfeldman1995 28u IPv6 0xdf2d97d52942a1d 0t0 TCP *:commplex-main (LISTEN)
我嘗試kill -9 13218再次運行并運行我的應用程式,但遇到了同樣的錯誤。運行 lsof,然后終止行程(或者我認為),然后再次運行 lsof 似乎表明新行程不斷被創建。(具有不同的行程 ID 號)。
這是我的 bootstrap.sh 檔案,按照 Jon 的要求:
#!/bin/sh
export FLASK_APP=./cashman/index.py
source $(pipenv --venv)/bin/activate
flask run -h 0.0.0.0
uj5u.com熱心網友回復:
較新版本的 macOS 上埠 5000 的問題在于 AirPlay 使用它;這就是為什么您會看到“ControlCenter”在埠上偵聽的原因。要擺脫它,請進入系統設定并關閉“AirPlay 接收器”或類似的東西(我無法準確判斷;我目前使用的計算機太舊了)。谷歌搜索“macos port 5000”出現了幾次點擊。
uj5u.com熱心網友回復:
您可以使用lsof列出行程、它們的 PID 和它們正在偵聽的 TCP 埠,命令如下:
sudo lsof -iTCP -sTCP:LISTEN -P -n
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/376244.html
上一篇:java中變數名的替換
