Pyjnius: PyJNIus ์„ค์น˜ - PermissionError: [WinError 5] ์•ก์„ธ์Šค๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 04์›” 09์ผ  ยท  15์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kivy/pyjnius

๋‹ค์Œ ์กฐ์น˜๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž ์—ญํ• ๋กœ cmd ์‹คํ–‰
๊ด€๋ฆฌ์ž ์—ญํ• ์—์„œ ์ž์‹ ์„ pycham ๋ฐ python ํŒŒ์ผ๋กœ ์„ค์ •
์‚ฌ์šฉ๋œ pip install --user PyJNIus
์‚ฌ์šฉ๋œ python -m pip install --user PyJNIus
Pycham์„ ๋‹ซ๊ณ  ๊ด€๋ฆฌ์ž ์—ญํ• ๋กœ cmd๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋†’์€ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์•„๋ฌด๋„ ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

C:\WINDOWS\system32>python -m pip install --user PyJNIus
Collecting PyJNIus
  Using cached pyjnius-1.2.1.tar.gz (40 kB)
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\tom\AppData\Local\Programs\Python\Python38-32\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\tom\\AppData\\Local\\Temp\\pip-install-ueh9n_76\\PyJNIus\\setup.py'"'"'; __file__='"'"'C:\\Users\\tom\\AppData\\Local\\Temp\\pip-install-ueh9n_76\\PyJNIus\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\pip-egg-info'
         cwd: C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\
    Complete output (15 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\setup.py", line 92, in <module>
        compile_native_invocation_handler(*get_possible_homes(PLATFORM))
      File "C:\Users\tom\AppData\Local\Temp\pip-install-ueh9n_76\PyJNIus\setup.py", line 82, in compile_native_invocation_handler
        subprocess.check_call([
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 359, in check_call
        retcode = call(*popenargs, **kwargs)
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 340, in call
        with Popen(*popenargs, **kwargs) as p:
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 854, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "C:\Users\tom\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", line 1307, in _execute_child
        hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    PermissionError: [WinError 5] Acess denied
awaiting-reply

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” env.py ์žฌ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค -- JDK/JRE๋ฅผ ์ถ”์ ํ•˜๋Š” -- ๋ช‡ ๋‹ฌ ์ „, ๊ทธ๋ฆฌ๊ณ  ๋ฏธํ•ด๊ฒฐ๋œ Pull Request -- https://github.com/kivy/pyjnius/pull/541 ์ฐธ์กฐ - ๊ทธ๋ž˜์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ด์ „ ๋ฒ„์ „์„ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  15 ๋Œ“๊ธ€

ํ , ๊ธฐ๊ณ„์— javac/ant๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ˆ„๋ฝ ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” Windows๊ฐ€ ๊ณผ๊ฑฐ์— ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜ ๋Œ€์‹  ๊ถŒํ•œ ์˜ค๋ฅ˜๋กœ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค).

๋ฆด๋ฆฌ์Šค์— python3.8 ๋Œ€์ƒ์„ ์ถ”๊ฐ€ํ•ด์•ผ ์„ค์น˜๊ฐ€ ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.
ํŽธ์ง‘: ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๋Š” python3.8์— ๋Œ€ํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ amd64์— ๋Œ€ํ•ด์„œ๋งŒ 32๋น„ํŠธ python์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”....

Windows 10์—์„œ Python 3.7(32๋น„ํŠธ)๋กœ ์ž‘์—…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ CMD ์ฐฝ์—์„œ "pip install pyjnius"๋ฅผ ์‹คํ–‰ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์›น ๊ฒ€์ƒ‰ ํ›„ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜ํƒ€๋‚œ ์ œ์•ˆ์€ ํŒŒ์ผ ๊ถŒํ•œ๊ณผ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๋‹ค์Œ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

1.) Python์„ ์ œ๊ฑฐํ•˜๊ณ  Python 3.7.7(32๋น„ํŠธ)์„ ๋‹ค์‹œ ์„ค์น˜ํ•œ ๋‹ค์Œ "pip install pyjnius"

2.) https://github.com/kivy/pyjnius/releases/download/1.3.0/pyjnius-1.3.0.tar.gz์—์„œ ์‹ค์ œ gz ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
a.) ์••์ถ•์„ ํ‘ผ ํŒŒ์ผ.
b.) CMD ์ฐฝ์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
c.) ๋‹ค์šด๋กœ๋“œํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. C:UsersHomeDownloadspyjnius-1.3.0.tardistpyjnius-1.3.0pyjnius-1.3.0
d.) ๋‹ค์Œ ๋ช…๋ น ์‹คํ–‰: ๋‹ค์Œ ๋ช…๋ น ์‹คํ–‰: python setup.py

3.) git repo์—์„œ ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
a.) ์‹œ๋„ - pip install git+git://github.com/kivy/pyjnius.git#egg=pyjnius
b.) ์‹œ๋„ - pip install git+ https://github.com/kivy/pyjnius.git#egg =pyjnius

๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค...

์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "setup.py", 95ํ–‰,
compile_native_invocation_handler( get_possible_homes(PLATFORM))compile_native_invocation_handler์˜ ํŒŒ์ผ "setup.py", 87ํ–‰์กฐ์ธ('jnius', 'src', 'org', 'jnius', 'NativeInvocationHandler.java')check_call์—์„œ ํŒŒ์ผ "C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py", 358ํ–‰retcode = ํ˜ธ์ถœ( popenargs, *kwargs)ํŒŒ์ผ "C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py", 339ํ–‰, ํ˜ธ์ถœ ์ค‘( popenargs, **kwargs)์„ p๋กœ ์‚ฌ์šฉ:
ํŒŒ์ผ "C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py", 800ํ–‰, __init__
restore_signals, start_new_session)
ํŒŒ์ผ "C:UsersHomeAppDataLocalProgramsPythonPython37-32libsubprocess.py", 1207ํ–‰, _execute_child
์‹œ์ž‘ ์ •๋ณด)
PermissionError: [WinError 5] ์•ก์„ธ์Šค๊ฐ€ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‹คํ–‰ํ•˜๋ ค๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ๋„ ๋ณด๊ณ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ setup.py๋Š” ์ผ๋ถ€ Java ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ant/javac๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฏ€๋กœ ๊ฒฝ๋กœ์—์„œ ์ฐพ์ง€ ๋ชปํ•ด ์‹คํŒจํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‘˜ ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ ?

๊ทธ๋Ÿฐ๋ฐ ์™œ 32๋น„ํŠธ ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” 64๋น„ํŠธ ๋ฒ„์ „์šฉ ํœ ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 32๋น„ํŠธ ๋ฒ„์ „์šฉ ํœ ์„ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•ฝ๊ฐ„์˜ ์ž‘์—…์ด๋ฉฐ ์ด ์‹œ์ ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ํœ ์„ ์˜ฎ๊ฒจ์•ผ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค. 64๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์˜ ๋น„ํŠธ ๋ฆด๋ฆฌ์Šค? ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์ปดํŒŒ์ผ ์—†์ด pyjnius๊ฐ€ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…• ๊ฐ€๋ธŒ๋ฆฌ์—˜,

ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 64๋น„ํŠธ ๋ฒ„์ „์˜ Python์„ ์„ค์น˜ํ•œ ๋‹ค์Œ pyjnius๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•˜๋ฉด ์—ฌ๊ธฐ์— ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ธธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?

์•ˆ๋…•ํ•˜์„ธ์š” @tshirtman

64๋น„ํŠธ Python ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๊ณ  ๋ฌธ์ œ ์—†์ด pyjnius ๋ชจ๋“ˆ์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์Šค์Šค๋กœ์—๊ฒŒ "์™œ 32๋น„ํŠธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒ๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ์ •๋ง๋กœ ์ข‹์€ ๋Œ€๋‹ต์„ ์ƒ๊ฐํ•ด๋‚ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ธ๋ฒคํ† ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  32๋น„ํŠธ์— ์žˆ๋Š” ๋ชจ๋“ˆ์„ 64๋น„ํŠธ์— ์„ค์น˜ํ–ˆ์œผ๋ฉฐ PATH๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๊ฐ .py ํŒŒ์ผ์ด ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•˜๊ณ  ํ›„์† ์กฐ์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค ...

:)

์—„์ฒญ๋‚œ!

Windows 32๋น„ํŠธ btw(#536)์šฉ ๋นŒ๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์ˆ˜์ •ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์•„๋งˆ ๊ทธ๋Ÿด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์— :D.

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,
์ด๊ฒƒ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” 32๋น„ํŠธ ์•ฑ์œผ๋กœ ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด๊ฒƒ์ด appdata ์•„๋ž˜์— ์„ค์น˜๋˜๋Š” 32๋น„ํŠธ ํŒŒ์ด์ฌ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ (ํ•˜์ง€๋งŒ 32๋น„ํŠธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์„ค์น˜ํ•œ ๊ธฐ์–ต์€ ์—†์Šต๋‹ˆ๋‹ค).
์‹ค์ œ๋กœ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ƒ์Šน์„ ์—ด๊ณ  ํ”„๋กœ๊ทธ๋žจ ํŒŒ์ผ ์•„๋ž˜์˜ python ํด๋”๋กœ ์ด๋™ํ•˜์—ฌ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
.python.exe -m pip ์„ค์น˜ pyjnius
pyjnius๋ฅผ ์ œ๋Œ€๋กœ ์„ค์น˜ํ•˜๋ ค๋ฉด.

์ด๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์œ ์šฉํ•œ์ง€/์“ธ๋ชจ ์—†๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์˜ค๋Š˜์ด ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค๋‹ค. ์ €๋Š” ์ฒ˜์Œ์— Python 3.8 32๋น„ํŠธ(64๋น„ํŠธ ๋Œ€์‹  32๋น„ํŠธ๋ฅผ ์„ค์น˜ํ•œ ์ด์œ ๋ฅผ ๋ชจ๋ฆ„)๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  python 3.9 64๋น„ํŠธ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„์—๋„ ์ปดํŒŒ์ผํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ python์˜ ์‹ค์ œ ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ณ  ์ด์ „ ์ฃผ์„์—์„œ ์–ธ๊ธ‰ํ•œ ๋Œ€๋กœ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ pypi๋ฅผ ์‚ดํŽด๋ณด๊ณ  python 3.8 64๋น„ํŠธ์šฉ ๋ฐ”ํ€ด๊ฐ€ ์ œ๊ณต๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์—ฌ ํ•ด๋‹น ๋ฒ„์ „์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  pyjnius๋ฅผ ์„ค์น˜ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๋ช…์„œ์—์„œ ์ด๋ฅผ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ pyjnius๋Š” ์•„์ง Windows์—์„œ python 3.9์™€ ํ•จ๊ป˜ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—.

JDK๊ฐ€ ์•„๋‹Œ JRE๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๊นŒ?
๊ฒฝ๋กœ์— javac๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

OpenJDK 11(jdk-11.0.8.10-hotspot)์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์˜ˆ, javac ์ด ๊ฒฝ๋กœ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ 3.9๋Š” ํ˜„์žฌ ์—ฐ์† ๋ฐฐํฌ github ์ž‘์—… ์Šคํฌ๋ฆฝํŠธ์— ์žˆ์Šต๋‹ˆ๋‹ค(4์ผ ์ „ ๊ธฐ์ค€) - https://github.com/kivy/pyjnius/blob/master/.github/workflows/create.yml#L13 ์ฐธ์กฐ - ๊ทธ๋ž˜์„œ ์ œ ์ƒ๊ฐ์—๋Š” ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—๋Š” Windows์—์„œ Python 3.9 64๋น„ํŠธ์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐฐํฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค!

pip๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์‚ฌ์ „ ๋นŒ๋“œ๋œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•„์‹ญ๋‹ˆ๊นŒ? ๋‚˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ฒฐ์ •๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด setup.py ์Šคํฌ๋ฆฝํŠธ์™€ env.py ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๊ณ  javac์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๊ฐ€ ํ•ด๊ฒฐ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๊ถŒํ•œ ์˜ค๋ฅ˜(๋˜๋Š” ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜)๊ฐ€ ์—†์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋ฅด๊ฒŒ.

๋‚˜๋Š” env.py ์žฌ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค -- JDK/JRE๋ฅผ ์ถ”์ ํ•˜๋Š” -- ๋ช‡ ๋‹ฌ ์ „, ๊ทธ๋ฆฌ๊ณ  ๋ฏธํ•ด๊ฒฐ๋œ Pull Request -- https://github.com/kivy/pyjnius/pull/541 ์ฐธ์กฐ - ๊ทธ๋ž˜์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ด์ „ ๋ฒ„์ „์„ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ Windows 10์˜ Ubuntu ์•ฑ์—์„œ Anaconda Anaconda ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. >> Anaconda ์ž์ฒด๊ฐ€ ๋‹ค๋ฃจ๊ธฐ ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰