Pyarmor로 다른 실행 환경에서 사용하는 코드 난독화

컴순이·2024년 6월 3일

pyarmor은 실행환경에 따라 다르게 코드를 난독화하나보다.
내 환경에서 사용할 코드는 pyarmor g -r [폴더이름]으로 간단하게 난독화 가능하다.

하지만 윈도우에서 난독화한 코드를 리눅스에 옮겨서 실행하면 오류가 난다. 나는 다음과 같은 메세지를 보았다.

folder/api/src> pyarmor gen -r .
  File "folder/api/src/main.py", line 2, in <module>
    from pyarmor_runtime_000000 import __pyarmor__
  File "folder/api/pyarmor_runtime_000000/__init__.py", line 2, in <module>
    from pyarmor_runtime import __pyarmor__
ModuleNotFoundError: No module named 'pyarmor_runtime'

1. 플랫폼 명시

pyarmor g -r --platform [플랫폼] [폴더이름]
나는 리눅스 환경에 맞추어 pyarmor g -r --platform linux.x86_64 [폴더이름]를 사용했다.
플랫폼 명칭은 여기서 확인할 수 있다.
https://pyarmor.readthedocs.io/en/latest/reference/concepts.html#term-Platform

2. 파이썬 버전 맞추기

앗 어찌 보면 당연한 거지만.. 실행 환경의 파이썬 버전도 맞춰야 한다.

  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen src.main>", line 3, in <module>
RuntimeError: this Python version is not supported (1:1351)

내 가상환경에 새 파이썬을 깔다간 다음과 같은 메세지를 볼 수 있기 때문에 새 가상환경을 만들어서 한 큐에 끝내자.

ERROR    DLL load failed while importing pytransform3: 지정된 모듈을 찾을 수 없습니다.

그 외

기타 에러는 밑을 보고 참고
https://pyarmor.readthedocs.io/en/latest/reference/errors.html

profile
음음

0개의 댓글