๋ค์ ์กฐ์น๋ฅผ ์๋ํ์ง๋ง ์ค๋ฅ๊ฐ ๊ณ์ ๋ํ๋ฉ๋๋ค.
๊ด๋ฆฌ์ ์ญํ ๋ก 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
ํ , ๊ธฐ๊ณ์ 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 ์์ฒด๊ฐ ๋ค๋ฃจ๊ธฐ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋
env.py
์ฌ์์ฑํ์ต๋๋ค -- JDK/JRE๋ฅผ ์ถ์ ํ๋ -- ๋ช ๋ฌ ์ , ๊ทธ๋ฆฌ๊ณ ๋ฏธํด๊ฒฐ๋ Pull Request -- https://github.com/kivy/pyjnius/pull/541 ์ฐธ์กฐ - ๊ทธ๋์ ๊ฐ์ธ์ ์ผ๋ก ์ด์ ๋ฒ์ ์ ๋๋ฒ๊ทธํ๊ณ ์ถ์ง ์์ต๋๋ค!