최소 개발환경 설정
- mac, pyenv, cursor ai 환경
Python 가상환경
pyenv 설치
brew install pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
pyenv install 3.11
mkdir openstack-dev
cd openstack-dev
pyenv local 3.11
python -m venv OCA-OpenStack
source OCA-OpenStack/bin/activate
이 과정이 끝나면 해당 터미널 세션 내에서는 OCA-OpenStack 의 파이썬 가상환경이 유지된다.
OpenStack 최소 개발환경
OCA-OpenStack 있는 디렉토리 내에서 진행
git clone https://opendev.org/openstack/python-openstackclient
git clone https://opendev.org/openstack/osc-lib
git clone https://opendev.org/openstack/openstacksdk
pip install -r python-openstackclient/requirements.txt
pip install -r python-openstackclient/test-requirements.txt
개발에 필요한 최소 환경 setup.py 실행
cd python-openstackclient
python setup.py develop
cd ../openstacksdk
python setup.py develop
cd ../osc-lib
python setup.py develop
cd ..
Cursor 설정
OCA-OpenStack 있는 디렉토리 내에서 진행
cursor .
Cmd + Shift + P
>Python: Select Interpreter
인터프리터 설정 필수 (OCA-OpenStack 내 파이썬)
디버거 설정
- OpenStack 이 설치된 환경이 필요하다.
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Python File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["project", "list",],
"env": {
"OS_PROJECT_NAME": "admin",
"OS_USERNAME": "admin",
"OS_PASSWORD": "PASSWORD",
"OS_REGION_NAME": "RegionOne",
"OS_IDENTITY_API_VERSION": "3",
"OS_AUTH_TYPE": "password",
"OS_AUTH_URL": "http://OPENSTACK_VIP:KEYSTONE_PORT",
"OS_USER_DOMAIN_NAME": "default",
"OS_PROJECT_DOMAIN_NAME": "default",
"OS_VOLUME_API_VERSION": "3",
}
}
]
}
디버거 기본 테스트
python-openstackclient/openstackclient/shell.py
열기F5
키 실행
터미널이 시작되며 아래 실행결과가 나온다
cd .../openstack-dev ; /usr/bin/env .../openstack-dev/OCA-OpenStack/bin/python .cursor/extensions/ms-python.debugpy-2025.8.0-darwin-arm64/bundled/libs/debugpy/adapter/../../debugpy/launcher 59970 -- .../openstack-dev/python-openstackclient/openstackclient/shell.py project list
+----------------------------------+-----------------+
| ID | Name |
+----------------------------------+-----------------+
| 192c04b2879c4e123441c9d2c3d8f563 | service |
| 2849242423b64c4685f8f37b4b2f9205 | admin |
+----------------------------------+-----------------+