FAQ

자주 묻는 질문

코드 실행, 라이브러리 및 확장 기능, 파일 전송, AI 어시스턴트에 관한 안내입니다.

01

코드 실행

중지를 눌러도 바로 멈추지 않는 이유는 무엇인가요?

중지 버튼은 현재 실행에 중단을 요청하지만 모든 작업을 즉시 중단할 수는 없습니다. time.sleep(), 네트워크 응답이나 잠금 대기, 일부 네이티브 라이브러리 연산은 해당 작업이 반환된 후에 중지됩니다. 모듈을 가져오는 중이라면 가져오기가 끝날 때까지 기다립니다.

오래 기다려도 중지되지 않으면 파일을 저장한 뒤 iOS 앱 전환기에서 Pythona를 종료하고 다시 열어 주세요.

스크립트를 실행하다가 앱이 종료되는 이유는 무엇인가요?

스크립트가 quit(), exit(), sys.exit()를 호출해 실행을 끝내면 기본 설정에서는 Pythona 앱 전체가 종료됩니다.

‘설정 → quit() / exit()’에서 ‘Pythona 종료’를 ‘현재 실행만 종료’로 바꾸면 앱을 열어 둔 채 현재 실행만 끝낼 수 있습니다.

큰 배열을 처리하거나 큰 모델을 실행할 때 메모리 사용량이 너무 많아지면 iOS가 앱을 직접 종료할 수 있습니다. 이때 Python 오류가 표시되지 않을 수도 있습니다. 이런 종료는 ‘quit() / exit()’ 설정으로 제어할 수 없습니다. 데이터나 모델의 크기를 줄이거나 데이터를 나누어 처리해 보세요.

문제가 반복되면 재현할 수 있는 코드와 실행 단계를 함께 보내 주세요.

스크립트에 인수를 전달하려면 어떻게 하나요?

편집기의 실행 버튼을 길게 누르고 ‘인수를 사용하여 실행…’을 선택하세요. 인수는 스크립트의 sys.argv[1:]로 전달됩니다. 자주 사용하는 인수는 같은 메뉴의 ‘실행 구성 편집…’에서 저장하고 기본 구성으로 설정할 수 있습니다.

단축어 앱에서 스크립트를 실행하려면 어떻게 하나요?

편집기 상단의 파일 이름을 탭하고 ‘단축어’를 선택한 다음 ‘스크립트 경로’를 복사하세요. 단축어 앱에서 Pythona의 ‘Python 스크립트 실행’ 동작을 추가하고 경로를 입력하세요. 필요하면 인수를 추가할 수 있으며, 동작이 반환한 텍스트 출력을 후속 동작에 전달할 수도 있습니다.

02

라이브러리 및 확장 기능

일부 서드 파티 라이브러리가 설치되지 않는 이유는 무엇인가요?

패키지 관리자는 순수 Python wheel로 배포되는 서드 파티 라이브러리의 설치를 지원합니다. 소스 코드만 제공하거나 C, C++, Rust 등의 컴파일된 확장 모듈이 필요한 라이브러리는 컴퓨터에서처럼 바로 설치할 수 없습니다. NumPy, SciPy 등의 네이티브 라이브러리는 미리 컴파일된 상태로 앱에 포함되어 있습니다.

순수 Python 라이브러리도 Python 3.14 및 iOS와 호환되어야 합니다. 현재 환경에서 지원하지 않는 시스템 기능에 의존하면 실행되지 않을 수 있습니다.

주요 내장 라이브러리 보기

설치한 라이브러리도 iCloud로 동기화되나요?

아니요. 패키지 관리자로 설치한 라이브러리는 현재 기기의 로컬 폴더에 저장되며, 로컬 저장소, iCloud, 외부 폴더의 스크립트가 함께 사용합니다.

iCloud로 프로젝트를 동기화한 뒤에도 다른 기기에서 프로젝트에 필요한 라이브러리를 별도로 설치해야 합니다.

Pythona에는 어떤 전용 확장 기능이 있나요? iOS 기능은 어떻게 호출하나요?

Pythona에 내장된 scene은 게임, 애니메이션, 대화형 그래픽에 사용할 수 있습니다. photos로 시스템 사진 선택기에서 사진과 동영상을 선택하거나 사진 보관함에 저장할 수 있습니다. audio는 오디오 재생, 녹음, 효과 처리를 제공하며, coreml은 Core ML 모델을 불러와 기기에서 추론을 실행합니다.

pythona로 앱 자체의 기능을 이용할 수 있습니다. pythona.packages로 서드 파티 패키지를 설치하고, pythona.ai로 사용자 지정 AI 공급자 설정을 생성, 조회, 업데이트할 수 있습니다.

이 모듈들은 Pythona가 제공하는 실행 환경에 의존합니다. 다른 Python 환경으로 옮기려면 관련 호출을 대체하거나 수정해야 합니다. 다른 앱에 있는 같은 이름의 모듈과 API가 같다고 보장되지는 않습니다.

더 많은 iOS 시스템 기능이 필요하다면 rubicon-objc로 Python에서 iOS 네이티브 API를 호출하는 방법을 권장합니다. UIKit으로 네이티브 인터페이스를 만들 수도 있습니다. 앱 내 기기 정보 및 WKWebView 예제를 참고하세요.

이 전용 확장 기능에는 현재 별도의 API 문서가 없습니다. 앱 내 예제, 읽을 수 있는 Python 모듈 소스 코드, 모듈에 내장된 도움말을 참고할 수 있습니다. AI 어시스턴트에게 이 자료들을 먼저 살펴본 뒤 코드를 작성하고 실행하도록 요청할 수도 있습니다.

게임이나 그래픽 인터페이스를 만들려면 무엇을 사용하면 좋나요?

2D 게임, 애니메이션, 오디오 재생에는 pygame을 권장합니다(앱에는 pygame-ce가 내장되어 있습니다). pygame.mixer만 사용하면 창을 만들지 않고 음악이나 효과음을 재생할 수 있습니다.

인터페이스나 웹 게임은 HTML, CSS, JavaScript로 만들고 Pythona에서 WKWebView로 표시할 수 있습니다. 웹 콘텐츠는 여러 플랫폼에서 재사용하기 쉽지만, WKWebView를 표시하는 코드와 웹 페이지를 Python 또는 iOS 기능에 연결하는 부분은 대상 환경에 맞게 수정해야 합니다.

iOS 네이티브 인터페이스가 필요하다면 rubicon-objc를 통해 UIKit을 호출할 수 있습니다. UIKit을 사용하는 코드는 여전히 iOS에 의존합니다.

Pythona는 Tkinter도 지원하므로 기존 Tkinter 스크립트를 실행하거나 간단한 도구를 만드는 데 사용할 수 있습니다. 인터페이스는 전통적인 데스크톱 스타일입니다. 모바일 기기에서의 디자인과 사용성을 더 중시한다면 웹 인터페이스나 rubicon-objc를 통한 UIKit 사용을 권장합니다. 앱 내에 관련 예제가 있습니다.

03

파일

컴퓨터와 파일을 주고받으려면 어떻게 하나요?

코드 프로젝트에는 Git을 권장합니다. Pythona와 컴퓨터에서 같은 원격 저장소를 복제하고, 변경 사항을 커밋한 뒤 푸시하고, 다른 쪽에서 풀하여 업데이트를 가져오면 됩니다.

iCloud Drive로 파일을 동기화하거나 시스템 공유 기능으로 내보낼 수도 있습니다. Mac과 파일을 주고받을 때는 AirDrop도 사용할 수 있습니다.

앱에서 ‘파일 서버’를 켜면 같은 로컬 네트워크에 연결된 컴퓨터의 브라우저에서 앱에 표시된 주소로 접속해 파일을 업로드하거나 다운로드할 수 있습니다. 파일 서버에는 로그인 암호가 없습니다. 신뢰할 수 있는 네트워크에서 사용하고 전송이 끝나면 서버를 중지해 주세요.

04

AI 어시스턴트

AI 어시스턴트는 어떤 파일을 읽고 쓸 수 있나요?

AI 어시스턴트는 현재 대화의 작업 공간을 기본 프로젝트 디렉터리로 사용합니다. 새 대화에서 첫 메시지를 보내기 전에 ‘작업 공간 변경’에서 폴더를 선택할 수 있습니다. 파일 브라우저에서 다른 디렉터리로 이동해도 기존 대화의 작업 공간은 바뀌지 않습니다.

AI 어시스턴트는 run_python을 호출해 Python 코드를 실행하고 작업 공간 밖의 내용을 포함한 앱 내 파일과 폴더를 읽을 수도 있습니다. 이러한 접근은 선택한 작업 공간의 범위로 제한되지 않습니다.

AI 어시스턴트는 AGENTS.md를 지원하나요?

네. 현재 대화의 작업 공간 루트 디렉터리에 AGENTS.md를 만들고 프로젝트 설명, 코드 스타일, 기타 협업 규칙을 작성할 수 있습니다.

어시스턴트는 새 메시지를 처리할 때마다 이 파일을 자동으로 읽습니다. 수정 내용을 저장하면 다음 메시지를 보낼 때 적용됩니다. 작업 공간 루트의 AGENTS.md만 자동으로 불러오며, 하위 디렉터리에 있는 같은 이름의 파일은 자동으로 병합하지 않습니다.

사용자 지정 공급자(JS Provider)는 어떤 용도로 쓰나요?

사용자 지정 공급자를 사용하면 JavaScript로 AI 서비스 연결 방식을 직접 정의할 수 있습니다. 내장 공급자가 아직 지원하지 않는 API, 인증 방식, 서비스 기능을 이용하거나 사용자 지정 도구를 추가할 수 있습니다.

여기서 JavaScript를 사용하는 이유는 AI 서비스 연결, 인증, 응답 처리를 별도의 실행 환경에서 수행하여 이러한 연동 로직이 사용자의 Python 환경에 영향을 주지 않도록 하기 위해서입니다.

사용자 지정 도구로 외부 서비스를 호출할 수 있습니다. run_python을 이용하는 도구를 만들어 어시스턴트가 Python 스크립트를 실행하고, 스크립트를 통해 iOS 기능을 호출하게 할 수도 있습니다.

내장 공급자가 요구 사항을 충족한다면 추가 설정은 필요하지 않습니다. 기능을 확장하려면 설정 화면의 JavaScript API와 예제를 참고하세요.

다른 질문이 있나요?

문제를 제보할 때는 앱 버전, 재현 단계, 전체 오류 메시지를 함께 보내 주세요.

개발자에게 문의