python3, windows 를 기준으로 작성했습니다.

 

python 으로 작성한 코드를 C# 에서 사용해야 할 일이 있어서 컨버팅 작업이 필요했다.

python 코드를 바로 C# 에서 사용하는 방법도 있었는데 코드 보안을 위해 pyd (dll)로 컨버팅 하기로 했다.

 

$ pip install Cython

일단 Cython이 없다면 설치해주고,

 

# sum.pyx

def sum(a,b) :
    return a + b

파이썬 코드를 작성하는데 확장자를 *.pyx 로 해준다.

 

 

# setup.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension("sumdll", ["sum.pyx"])] )

 

setup.py 의 코드는 이렇게 작성하고,

 

$ python .\setup.py build_ext --inplace

 

위의 커맨드로 setup.py 를 실행시킨다.

 

결과물

c, pyd 로 컨버팅된 파일이다. pyd 파일은 파이썬, 운영체제 버전에 따라 뒤에 붙는 이름이 조금 달라진다.

이것저것 검색하거나, 다른 사람들과 대화할 때 리턴값, 전달값등 표현할 때 parameter, argument 를

그냥 생각나는대로 말하다가 의문점이 들었다. 무슨 차이일까?

 

검색으로 내가 이해하기론..

 

Parameter (매개 변수) 는 함수 정의에서 선언한 입력 변수 ,

Argument (전달 인자) 는 함수에 입력 하는 변수 로 이해했다.

 

def func(a,b) :
  return a + b

func 함수에서 정의한 a, b는 parameter

 

func(1,3)

func 함수를 호출하기 위해서 1, 3 을 입력한건 argument

 

이것말고도 헷갈려서 혼동하면서 쓰는 단어가 몇개씩 있는데 찾아가며 구분해가며 써야겠다.

 

Reference :

https://stackoverflow.com/questions/1788923/parameter-vs-argument

https://ko.wikipedia.org/wiki/%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)

python3 를 기준으로 작성했습니다.

 

파이썬 앱을 실행할 때 Windows 에서 관리자 권한으로 실행했는지 확인하는 방법이다.

 

 

pip 로 pywin32 를 설치하자

pip install pywin32

 

 

그다음엔 파이썬 파일을 작성하자

# admin.py

from win32com.shell import shell
if shell.IsUserAnAdmin() :
    print("관리자입니다.")
else :
    print("관리자가 아닙니다.")

admin.py

 

위 사진처럼 관리자 권한으로 실행했는지 아닌지 확인할 수 있다.

 

버전 코드가 00인 APK를 사용하는 사용자는 android.permission.CHANGE_WIFI_MULTICAST_STATE 권한을 수락해야 할 수도 있습니다. 이로 인해 사용자가 이 버전의 앱으로 업그레이드하지 않을 수도 있습니다.
도움말:
새 권한이 반드시 필요한지 확인하고 이번 버전의 새로운 기능 텍스트에 이러한 권한을 언급하는 것을 고려해 보세요.

 

유니티 2018 버전으로 빌드하던 앱을 2019 버전으로 업그레이드 하고

구글 플레이에 업로드 하려니 이런 경고가 뜨더라. 업로드 자체는 문제없이 됐는데 그래도 경고가 뜨니깐 뭐가 문제인지, 해결방법을 찾아봤다.

 

문제는 유니티 패키지 매니저에 설치된 Multiplayer HLAPI. 유니티 2019 버전으로 업그레이드 하면서 같이 깔려서 임포트 된 듯하다. 제거해보자.

 

1. Unity -> Window -> Package Manager 로 들어간다

Unity -> Window -> Package Manager

 

2. Multiplayer HLAPI -> Remove 로 제거한다.

패키지가 너무 많아서 안보이면 왼쪽 위에 All packages 로 돼있을텐데 In Project 로 변경하거나

오른쪽 위에서 검색하도록 하자

Multiplayer HLAPI -> Remove

 

 

Reference : https://forum.unity.com/threads/change_wifi_multicast_state.667441/

'Frontend > Unity' 카테고리의 다른 글

[Unity] 안드로이드 빌드를 위한 NDK 19.0.5 버전 다운  (10) 2020.05.06

Unity 2018버전을 쓰다가 2019로 업그레이드 하고 안드로이드 IL2CPP 빌드를 하려는데

jdk, sdk, ndk 경로가 다 초기화돼서 에러가 뜨길래 다시 지정해줬다. 

 경로 지정 => Edit -> Preferences -> External

 

jdk랑 sdk 는 이전 버전에서 쓰던거 그대로 사용하니깐 잘 됐는데 ndk 는 필요한 버전이 달라져서 경로 지정이 안된다.

 

안드로이드 개발자 홈페이지가서 NDK 최신이 20 버전이고,

19 버전중 19.2 버전인가? 있길래 다운받아봤는데 안되더라...

 

ndk ver

유니티에서 원하는 버전을 정확하게 넣어줘야 하는 모양이다.

 

Windows 64 bit => https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip

+ Recent posts