iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
自我挑戰組

與AI搶奪意識ing系列 第 9

目前還不願意入手MAC,但用WINDOWS卻處處踩雷的AI QA [day6] end

  • 分享至 

  • xImage
  •  

Q:uv pip install -r requirements.txt,Failed to build psycopg2==2.9.10?
A:卡在 psycopg2 編譯失敗,重點錯誤是:pg_config executable not found。
意思是:要連 PostgreSQL 的套件(psycopg2)需要系統的開發工具與 libpq 標頭檔,Ubuntu 還沒裝好。系統相依套件已裝好的話,下一步我們先重裝 Python 套件,看看 psycopg2 是否能順利編譯。

到這邊為止,我才可以開始migrate、建立超級使用者。但建立超級使用者出現:KeyError: 'createsuperuser'、ModuleNotFoundError: No module named 'config'...

這些除不盡的錯誤訊息..我今天決定先放生copilot,出動claude來幫我全盤檢查。但我真認為若再卡幾天,我都想要換mac了...

Q:現在這專案 是一個用mac的人做的,我希望能夠接手優化,但我用windows,我已經安裝ubuntu
,接下來我可以怎繼續?
A:是一個 Django 專案,需要 PostgreSQL 和 Redis。發現的主要問題:

Mac 路徑問題

  • start_server.sh 中有硬編碼的 Mac 路徑:/home/user/data/sites/candy/bin/gunicorn

接下來的設置步驟:

  1. 在 Ubuntu 安裝依賴
    安裝 Python 和套件管理工具
    sudo apt update
    sudo apt install python3 python3-pip python3-venv

安裝 PostgreSQL
sudo apt install postgresql postgresql-contrib

安裝 Redis
sudo apt install redis-server

  1. 設置 PostgreSQL

sudo -u postgres psql
CREATE DATABASE ctedb;
CREATE USER cteuser WITH PASSWORD 'ctepass';
GRANT ALL PRIVILEGES ON DATABASE ctedb TO cteuser;
\q

  1. 設置 Python 環境
    cd /path/to/your/project
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt

  2. 修改啟動腳本
    需要將 start_server.sh 改為:
    gunicorn --workers=1 --threads=1 -b 0:5017 config.wsgi

你想要我現在就修改這個啟動腳本嗎?

Q:Mac 硬編碼路徑問題?
A:意思是 在 start_server.sh 這個啟動腳本裡,有人寫死(硬編碼)了一個特定電腦上的檔案路徑。寫死「我的電腦在哪裡放這個程式」,別人電腦或伺服器上通常不是這個路徑。跨平台不通用 → 這個路徑看起來像 Linux(WSL 或 Server),不是 Mac 專用,但如果你在 Mac 或 Windows 裡跑,可能就會找不到。

Q:修改啟動腳本?
A:其實就是 用 Gunicorn 這個 WSGI 伺服器,來啟動 Django 專案。

...我已經開始萌生退意了!!!

Q:我放棄在ubuntu中調整這個專案到可用,可以改用windows環境中處理嗎?
A:可以,看我表演阿?
總結一下為了讓這個專案在本地運行所做的事情:
修復的問題和完成的步驟:

  1. 建立缺失的 manage.py
  - 原專案沒有 manage.py 檔案
  - 創建了標準的 Django manage.py

  2. 修復 Mac 特定路徑
  - start_server.sh 中有硬編碼的 Mac 路徑:/home/user/data/sites/
  - 改為通用路徑:gunicorn 

  3. 安裝缺失的依賴
  - 添加 django-environ 到 requirements.txt
  - 安裝本地套件 django-user-profiles(解決 user_profiles 模組缺失)

  4. 修復 logging 路徑問題
  - 原本使用 Linux 路徑:/var/log/9soup.log
  - 改為 Windows 相容路徑,並自動創建 logs 目錄

  5. 設定 PostgreSQL
  - 確認已安裝 PostgreSQL 17
  - 建立資料庫:
  - 建立使用者:
  - 設定權限:讓  成為資料庫擁有者

  6. 修復 Django 設定
  - 添加 localhost 和 127.0.0.1 到 ALLOWED_HOSTS
  - 設定正確的 Django settings 模組:config.settings.baseconfig

  7. 執行資料庫遷移
  - 成功建立所有基本 Django 表格

  8. 啟動服務
  - 成功啟動開發伺服器在 http://localhost
  - 創建管理員帳號:

  結果:
  專案現在可以在 Windows 環境下正常運行,雖然還有一些 admin 配置錯誤,但核心功能已經可用。
  

Q:放棄堅持在ubuntu是對的?
A:其實兩邊都有道理,讓我分析一下:

  在 Windows 先搞定的好處:
  ✅ 立即可驗證 - 馬上知道專案是否能跑起來✅ 問題隔離 - 先解決程式碼問題,再處理環境問題✅
  快速迭代 - 不用在兩個系統間切換✅ 學習效果 - 你看到了完整的修復過程

  但堅持 Ubuntu 也有意義:
  🎯 生產環境一致 - 最終部署通常是 Linux🎯 避免路徑問題 - Linux 路徑在 Windows 下需要轉換🎯  

  Docker 準備 - 之後 Docker 化會更順暢

  我建議的策略:
  1. 現在 - 在 Windows 把所有程式碼錯誤修完
  2. 接下來 - 把修復好的版本移到 Ubuntu 測試
  3. 最後 - Docker 化,確保環境一致性

  這樣你得到:
  - ✅ 快速的問題發現和修復
  - ✅ 跨平台的兼容性驗證
  - ✅ 最終的環境一致性

Q:還有一些 admin 配置錯誤?
A:之前執行 python manage.py check 時看到很多 admin 配置錯誤:

主要錯誤類型:

  1. 重複欄位錯誤
    hr.admin.employee.EmployeeAdmin: (admin.E012) There are duplicate field(s) in
    'fieldsets[2][1]'

  2. 不存在的欄位引用
    hr.admin.employee.EmployeeAdmin: (admin.E037) The value of 'autocomplete_fields[0]' refers to
    'user', which is not a field of 'hr.Employee'
    hr.admin.teacher.TeacherAdmin: (admin.E108) The value of 'list_display[6]' refers to
    'is_active', which is not a callable or attribute

  3. 模型關聯衝突
    attendance.OvertimeRequest.approved_by: (fields.E304) Reverse accessor
    'User.approved_overtimes' clashes with reverse accessor for 'hr.Overtime.approved_by'

但實際上...
現在伺服器能跑,admin 頁面也能訪問,這些錯誤不會阻止網站運行,只是:

  • 某些 admin 功能可能不正常
  • 會有警告訊息
  • 部分頁面可能顯示錯誤

看來這專案資料庫做的很亂啊...
在跟ai繼續聊的同時,確認可以一步一步優化的同時,也注意到:ERD(資料表關聯圖)輔助檢查
開了本地伺服器跑,這個專案終於在今天打開啦!!!


上一篇
目前還不願意入手MAC,但用WINDOWS卻處處踩雷的AI QA [day5]
下一篇
如果沒有 AI 協助、又是新手,要完成純mac做的django專案能在windows本地執行...
系列文
與AI搶奪意識ing12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言