1. 일단 이동해 보자
아래는 커널을 띠우는 방법이라고 한다.
robot@kimsh:~/work/Robot-AI/deeplearning$ source /home/robot/work/Robot-AI/deeplearning/.venv/bin/activate (.venv) robot@kimsh:~/work/Robot-AI/deeplearning$ pip list Package Version ------- ------- numpy 2.4.0 pip 25.3 (.venv) robot@kimsh:~/work/Robot-AI/deeplearning$ pip install ipykernel Collecting ipykernel Using cached ipykernel-7.1.0-py3-none-any.whl.metadata (4.5 kB) Collecting comm>=0.1.1 (from ipykernel) Using cached comm-0.2.3-py3-none-any.whl.metadata (3.7 kB) Collecting debugpy>=1.6.5 (from ipykernel) Using cached debugpy-1.8.19-cp312-cp312-manylinux_2_34_x86_64.whl.metadata (1.4 kB) Collecting ipython>=7.23.1 (from ipykernel) Using cached ipython-9.9.0-py3-none-any.whl.metadata (4.6 kB) Collecting jupyter-client>=8.0.0 (from ipykernel) Using cached jupyter_client-8.7.0-py3-none-any.whl.metadata (8.3 kB) Collecting jupyter-core!=5.0.*,>=4.12 (from ipykernel) Using cached jupyter_core-5.9.1-py3-none-any.whl.metadata (1.5 kB) Collecting matplotlib-inline>=0.1 (from ipykernel) Using cached matplotlib_inline-0.2.1-py3-none-any.whl.metadata (2.3 kB) Collecting nest-asyncio>=1.4 (from ipykernel) Using cached nest_asyncio-1.6.0-py3-none-any.whl.metadata (2.8 kB) Collecting packaging>=22 (from ipykernel) Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB) Collecting psutil>=5.7 (from ipykernel) Using cached psutil-7.2.1-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl.metadata (22 kB) Collecting pyzmq>=25 (from ipykernel) Using cached pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (6.0 kB) Collecting tornado>=6.2 (from ipykernel) Using cached tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.8 kB) Collecting traitlets>=5.4.0 (from ipykernel) Using cached traitlets-5.14.3-py3-none-any.whl.metadata (10 kB) Collecting decorator>=4.3.2 (from ipython>=7.23.1->ipykernel) Using cached decorator-5.2.1-py3-none-any.whl.metadata (3.9 kB) Collecting ipython-pygments-lexers>=1.0.0 (from ipython>=7.23.1->ipykernel) Using cached ipython_pygments_lexers-1.1.1-py3-none-any.whl.metadata (1.1 kB) Collecting jedi>=0.18.1 (from ipython>=7.23.1->ipykernel) Using cached jedi-0.19.2-py2.py3-none-any.whl.metadata (22 kB) Collecting pexpect>4.3 (from ipython>=7.23.1->ipykernel) Using cached pexpect-4.9.0-py2.py3-none-any.whl.metadata (2.5 kB) Collecting prompt_toolkit<3.1.0,>=3.0.41 (from ipython>=7.23.1->ipykernel) Using cached prompt_toolkit-3.0.52-py3-none-any.whl.metadata (6.4 kB) Collecting pygments>=2.11.0 (from ipython>=7.23.1->ipykernel) Using cached pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB) Collecting stack_data>=0.6.0 (from ipython>=7.23.1->ipykernel) Using cached stack_data-0.6.3-py3-none-any.whl.metadata (18 kB) Collecting wcwidth (from prompt_toolkit<3.1.0,>=3.0.41->ipython>=7.23.1->ipykernel) Using cached wcwidth-0.2.14-py2.py3-none-any.whl.metadata (15 kB) Collecting parso<0.9.0,>=0.8.4 (from jedi>=0.18.1->ipython>=7.23.1->ipykernel) Using cached parso-0.8.5-py2.py3-none-any.whl.metadata (8.3 kB) Collecting python-dateutil>=2.8.2 (from jupyter-client>=8.0.0->ipykernel) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting platformdirs>=2.5 (from jupyter-core!=5.0.*,>=4.12->ipykernel) Using cached platformdirs-4.5.1-py3-none-any.whl.metadata (12 kB) Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython>=7.23.1->ipykernel) Using cached ptyprocess-0.7.0-py2.py3-none-any.whl.metadata (1.3 kB) Collecting six>=1.5 (from python-dateutil>=2.8.2->jupyter-client>=8.0.0->ipykernel) Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB) Collecting executing>=1.2.0 (from stack_data>=0.6.0->ipython>=7.23.1->ipykernel) Using cached executing-2.2.1-py2.py3-none-any.whl.metadata (8.9 kB) Collecting asttokens>=2.1.0 (from stack_data>=0.6.0->ipython>=7.23.1->ipykernel) Using cached asttokens-3.0.1-py3-none-any.whl.metadata (4.9 kB) Collecting pure-eval (from stack_data>=0.6.0->ipython>=7.23.1->ipykernel) Using cached pure_eval-0.2.3-py3-none-any.whl.metadata (6.3 kB) Using cached ipykernel-7.1.0-py3-none-any.whl (117 kB) Using cached comm-0.2.3-py3-none-any.whl (7.3 kB) Using cached debugpy-1.8.19-cp312-cp312-manylinux_2_34_x86_64.whl (4.3 MB) Using cached ipython-9.9.0-py3-none-any.whl (621 kB) Using cached prompt_toolkit-3.0.52-py3-none-any.whl (391 kB) Using cached decorator-5.2.1-py3-none-any.whl (9.2 kB) Using cached ipython_pygments_lexers-1.1.1-py3-none-any.whl (8.1 kB) Using cached jedi-0.19.2-py2.py3-none-any.whl (1.6 MB) Using cached parso-0.8.5-py2.py3-none-any.whl (106 kB) Using cached jupyter_client-8.7.0-py3-none-any.whl (106 kB) Using cached jupyter_core-5.9.1-py3-none-any.whl (29 kB) Using cached matplotlib_inline-0.2.1-py3-none-any.whl (9.5 kB) Using cached nest_asyncio-1.6.0-py3-none-any.whl (5.2 kB) Using cached packaging-25.0-py3-none-any.whl (66 kB) Using cached pexpect-4.9.0-py2.py3-none-any.whl (63 kB) Using cached platformdirs-4.5.1-py3-none-any.whl (18 kB) Using cached psutil-7.2.1-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl (154 kB) Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB) Using cached pygments-2.19.2-py3-none-any.whl (1.2 MB) Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Using cached pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (840 kB) Using cached six-1.17.0-py2.py3-none-any.whl (11 kB) Using cached stack_data-0.6.3-py3-none-any.whl (24 kB) Using cached asttokens-3.0.1-py3-none-any.whl (27 kB) Using cached executing-2.2.1-py2.py3-none-any.whl (28 kB) Using cached tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (445 kB) Using cached traitlets-5.14.3-py3-none-any.whl (85 kB) Using cached pure_eval-0.2.3-py3-none-any.whl (11 kB) Using cached wcwidth-0.2.14-py2.py3-none-any.whl (37 kB) Installing collected packages: pure-eval, ptyprocess, wcwidth, traitlets, tornado, six, pyzmq, pygments, psutil, platformdirs, pexpect, parso, packaging, nest-asyncio, executing, decorator, debugpy, comm, asttokens, stack_data, python-dateutil, prompt_toolkit, matplotlib-inline, jupyter-core, jedi, ipython-pygments-lexers, jupyter-client, ipython, ipykernel Successfully installed asttokens-3.0.1 comm-0.2.3 debugpy-1.8.19 decorator-5.2.1 executing-2.2.1 ipykernel-7.1.0 ipython-9.9.0 ipython-pygments-lexers-1.1.1 jedi-0.19.2 jupyter-client-8.7.0 jupyter-core-5.9.1 matplotlib-inline-0.2.1 nest-asyncio-1.6.0 packaging-25.0 parso-0.8.5 pexpect-4.9.0 platformdirs-4.5.1 prompt_toolkit-3.0.52 psutil-7.2.1 ptyprocess-0.7.0 pure-eval-0.2.3 pygments-2.19.2 python-dateutil-2.9.0.post0 pyzmq-27.1.0 six-1.17.0 stack_data-0.6.3 tornado-6.5.4 traitlets-5.14.3 wcwidth-0.2.14 (.venv) robot@kimsh:~/work/Robot-AI/deeplearning$
vscode를 실행하고 .ipynb 파일의 작은 코드를 실행하면 아랫창이 뜬다. 계속 진행한다.


무엇을 선택해야 하는가? Python 환경…을 선택한다.

위와 같이 선택되면 된다. 팁은 “다른 커널 선택…” 후 별표 말고 그 아래에 있는것을 선택하면 된다.
참고로 “새 프로젝트 설정”에서 wsl로 연결해서 작업하기는 실행치 말자. 본인 컴 문제인지 연결 된 후, 자꾸 다운이 된다.
2. 파이참은 모쥴을 업데이트 할 때, 버젼관리를 해 주는데…
pip를 믿으면 된다. 왜냐하면 pip 자체가 의존성 관리를 기본으로 해주기 때문이라고 한다. 그런데 특정 버젼을 깔아주어야 할 때가 있는데 이럴 때는 아래처럼 하면 된다.
(.venv) robot@kimsh:~/work/Robot-AI$ pip show numpy Name: numpy Version: 2.4.0 Summary: Fundamental package for array computing in Python Home-page: https://numpy.org Author: Travis E. Oliphant et al. Author-email: License-Expression: BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 Location: /home/robot/work/Robot-AI/deeplearning/.venv/lib/python3.12/site-packages Requires: Required-by: (.venv) robot@kimsh:~/work/Robot-AI$
pycharm에서 의존성 라이브러리를 일단 가져왔다.
asttokens 3.0.1 3.0.1 colorama 0.4.6 0.4.6 comm 0.2.3 0.2.3 debugpy 1.8.19 1.8.19 decorator 5.2.1 5.2.1 executing 2.2.1 2.2.1 ipykernel 7.1.0 7.1.0 ipython 9.8.0 9.9.0 ipython-pygments-lexers 1.1.1 1.1.1 jedi 0.19.2 0.19.2 jupyter-client 8.7.0 8.7.0 jupyter-core 5.9.1 5.9.1 matplotlib-inline 0.2.1 0.2.1 nest-asyncio 1.6.0 1.6.0 numpy 2.4.0 2.4.0 packaging 25.0 25.0 pandas 2.3.3 3.0.0rc1 parso 0.8.5 0.8.5 platformdirs 4.5.1 4.5.1 prompt-toolkit 3.0.52 3.0.52 psutil 7.2.1 7.2.1 pure-eval 0.2.3 0.2.3 pygments 2.19.2 2.19.2 python-dateutil 2.9.0.post0 2.9.0.post0 pytz 2025.2 2025.2 pyzmq 27.1.0 27.1.0 six 1.17.0 1.17.0 stack-data 0.6.3 0.6.3 tornado 6.5.4 6.5.4 traitlets 5.14.3 5.14.3
깔아 놓았던 numpy버젼과 pycharm커널이 깔았던 numpy 버젼이 동일함을 확인했다. 즉, 윗 내용을 참조해서 아래처럼 특정 버젼을 깔꺼나 numpy가 특정 버젼으로 깔렸으니까 pip 만 사용해도 호환되는 라이브러리를 자동으로 인스톨 해 줄 것이다. (실험은 아직…)
pip install numpy==x.24.3
그런데 깔았던 numpy를 삭제하고 싶다. 그러면 아래처럼.
pip uninstall numpy
가상환경에서는 하나의 버젼만 깔린다. 그래서 버젼 지정은 불가능하다.
그런데 깔고 지우고 반복하면 의존성 문제가 많이 생긴다고 한다. 아랫글에 requirements.txt를 이용해서 가상환경 되돌리기 방법을 써 놓았다. 충돌이 있을 때 아랫글을 참조해서 돌아가면 된다.
3. 라이브러리 계속 추가
matplotlib를 인스톨했다. 그랬더니 어마어마하게 깔린다.
(.venv) robot@kimsh:~/work/Robot-AI/deeplearning/matplotlib/MATPLOTLIB$ pip list Package Version ----------------------- ----------- asttokens 3.0.1 comm 0.2.3 contourpy 1.3.3 cycler 0.12.1 debugpy 1.8.19 decorator 5.2.1 executing 2.2.1 fonttools 4.61.1 ipykernel 7.1.0 ipython 9.9.0 ipython_pygments_lexers 1.1.1 jedi 0.19.2 jupyter_client 8.7.0 jupyter_core 5.9.1 kiwisolver 1.4.9 matplotlib 3.10.8 matplotlib-inline 0.2.1 nest-asyncio 1.6.0 numpy 2.4.0 packaging 25.0 parso 0.8.5 pexpect 4.9.0 pillow 12.1.0 pip 25.3 platformdirs 4.5.1 prompt_toolkit 3.0.52 psutil 7.2.1 ptyprocess 0.7.0 pure_eval 0.2.3 Pygments 2.19.2 pyparsing 3.3.1 python-dateutil 2.9.0.post0 pyzmq 27.1.0 scipy 1.16.3 six 1.17.0 stack-data 0.6.3 tornado 6.5.4 traitlets 5.14.3 wcwidth 0.2.14
확인은 a.ipynb 파일에 들어가서 아래의 코드를 입력, 실행해서 동작하면 된다.
import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt N=50 x=np.arange(N) y=np.random.random(size=N) plt.plot(x,y,'g^:')
