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 路徑問題
接下來的設置步驟:
安裝 PostgreSQL
sudo apt install postgresql postgresql-contrib
安裝 Redis
sudo apt install redis-server
sudo -u postgres psql
CREATE DATABASE ctedb;
CREATE USER cteuser WITH PASSWORD 'ctepass';
GRANT ALL PRIVILEGES ON DATABASE ctedb TO cteuser;
\q
設置 Python 環境
cd /path/to/your/project
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
修改啟動腳本
需要將 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 配置錯誤:
主要錯誤類型:
重複欄位錯誤
hr.admin.employee.EmployeeAdmin: (admin.E012) There are duplicate field(s) in
'fieldsets[2][1]'
不存在的欄位引用
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
模型關聯衝突
attendance.OvertimeRequest.approved_by: (fields.E304) Reverse accessor
'User.approved_overtimes' clashes with reverse accessor for 'hr.Overtime.approved_by'
但實際上...
現在伺服器能跑,admin 頁面也能訪問,這些錯誤不會阻止網站運行,只是:
看來這專案資料庫做的很亂啊...
在跟ai繼續聊的同時,確認可以一步一步優化的同時,也注意到:ERD(資料表關聯圖)輔助檢查
開了本地伺服器跑,這個專案終於在今天打開啦!!!