Study/ETC

python 여러 버전 사용하기 - python 가상환경 구축 (칼리리눅스)

Notchicken 2021. 11. 1. 13:48

여러 버전의 파이썬을 설치하고 상황에 따라 변경해 사용해야 할 경우가 있다.

여러 방법들이 있겠지만 그중 python 가상환경을 구축하여 사용하는 방법을 포스팅한다.

 

python 가상 환경은 python 버전 별 독립된 공간을 만들어주는 기능이다.

각 버전 별 가상 환경을 만들어 패키지를 설치하고, 해당 공간에서 해당 버전의 파이썬 스크립트를 실행할 수 있다.

독립된 가상환경을 구성하여 사용하므로, 각 버전별 호환성 문제가 발생하지 않는다.

 

해당 게시글은 5.10.0-kali3-amd64 환경에서 진행한 내용이다.

python 2.7.18과 python3.9.1 버전이 설치되어 있는 상태이며, 테스트 진행 시 pip을 이용한 라이브러리 설치 시 버전 문제가 발생하여 python 가상환경을 구축하여 해결할 수 있게 되었다.

 

1. virtualenv 설치

apt 업데이트 후 virtualenv를 설치한다.

>> sudo apt get update
>> sudo apt install virtualenv

 

2. 가상환경 구축

파이썬 버전을 지정하여 가상환경을 구축한다.

파이썬 3버전이 기본으로 설정되어 있어, 파이썬 2버전을 편리하게 사용하기 위해 파이썬 2버전으로 구축을 하였다.

>> sudo virtualenv py2.7 --python=python2.7
created virtual environment CPython2.7.18.final.0-64 in 857ms
  creator CPython2Posix(dest=/usr/local/lib/py2.7, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
    added seed packages: pip==20.3.4, pkg_resources==0.0.0, setuptools==44.1.1, wheel==0.34.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator

 

3. 가상환경 실행

구축한 가상환경 디렉터리에 들어가 실행한다.

>> cd py2.7/bin
>> source activate

 

4. 문제 해결

가상환경에서 pip2를 이용해 모듈을 설치하고, 해당 모듈을 이용한 스크립트를 실행시킬 수 있었다.

(py2.7)(root💀kali)-[/usr/local/lib/py2.7/bin]
└─# pip install msgpack        
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Collecting msgpack
  Downloading msgpack-1.0.2.tar.gz (123 kB)
     |████████████████████████████████| 123 kB 7.0 MB/s 
Building wheels for collected packages: msgpack
  Building wheel for msgpack (setup.py) ... done
  Created wheel for msgpack: filename=msgpack-1.0.2-py2-none-any.whl size=15812 sha256=4d606d318cc06e8d4970d8c6d41b7aa633eb165c0bcdd00894590b186c287b58
  Stored in directory: /root/.cache/pip/wheels/9a/c1/2f/dee60aba1e3df6f5a6edd694e62bf14f3537158cf1b63cc39d
Successfully built msgpack
Installing collected packages: msgpack
Successfully installed msgpack-1.0.2