난독화 한 코드를 설치하기 편하도록 컴파일할 필요가 생겼다.
- pyinstaller는 크로스 컴파일러가 아니므로 윈도우에서 번들링하면 윈도우에서만 실행 가능.
- rocky 리눅스 환경에서 진행.
미니콘다 가상환경 실행 후 진행
CONDA ACTIVATE MYENV
파이아머, 파이인스톨러를 설치한다.
pip install pyarmor
pip install pyinstaller
난독화 과정을 확인해 보기 위해 간단한 코드를 생성한다.
cat > test_input.py
print('Hello World!')

난독화
pyarmor gen test_input.py
dist/test_input에 생성된 파일 내용 확인

(무서워)
난독화 완료.
다음은 pyinstaller로 난독화 완료된 파일을 묶어 단일 실행파일을 만든다.
pyinstaller -F dist/test_input.py
++ 만약 실행시 런타임 모듈이 필요하다는 경고가 뜨면, 난독화 할 때 생성된 런타임 폴더를 pyinstaller 대상과 같은 경로에 넣어주면 된다.
Pyarmor ModuleNotFoundError: No module named 'pyarmor_runtime_000000'
I'm trying to obfuscate my project but got error ModuleNotFoundError: No module named 'pyarmor_runtime_000000', So I tried to obfuscate a very simple folder containing only 2 files as follows test ...
stackoverflow.com
+++ 의존성 문제가 발생할 수 있다. (no_module....)
명령어에 해당 문제가 발생한 의존성을 강제로 추가한다.
예시 : uvicorn
pyinstaller --onefile --name my_app_release --collect-all uvicorn dist/난독화대상/main.py
또는 --hidden-import 명령어를 사용한다.
ModuleNotFoundError: No module named 'transformers.models.metaclip_2'
--hidden-import "transformers.models.metaclip_2"'피드백 & 복습' 카테고리의 다른 글
| 몽고DB 데이터 덤프 (0) | 2025.12.17 |
|---|---|
| 크롤링 코드 수리하기 (1) | 2025.11.05 |
| miniconda로 가상환경 구축하기 (0) | 2025.09.25 |