정보보안/OS

리눅스 환경에서 파이썬 모듈 경로 변경(Ubuntu 18.04 기준)

우동이 2020. 12. 24. 21:10
300x250

파이썬이란 언어 자체는 인터프리터식 언어로 매우 가볍습니다.

물론 필수적인 기능은 내장 라이브러리로 갖추어져 있으나 웹, 크롤링등 좋은 성능의 라이브러리는 전부 외장으로

따로 설치 후 사용해야 합니다.

 

이러한 외장 라이브러리들을 사용하는 방법은 pip(package install for python)를 통해 외부 라이브러리를 설치후

그 라이브러리들을 사용한다고 선언(import) 해주는 것입니다.

 

파이썬을 사용할 때에 주로 기본 환경에서 사용한다면 설치한 라이브러리들은 자동으로 파이썬 라이브러리 경로에 추가되어 사용이 가능하겠지만 그렇지 않은 경우는 별도의 설정이 필요합니다.


MODULE : sys

import sys

sys는 python의 내장 모듈이며 시스템(변수&함수)을 직접 제어하는 기능을 가진 모듈입니다.

sys.path

sys.path의 기능은 경로를 출력하는 데에 있습니다.

출력되는 경로는 파이썬의 모듈(라이브러리)이 존재하거나 모듈을 인식하는 경로를 전부 출력합니다.

#main.py
import sys
print(sys.path)

 

module 이 위치한 경로들


sys.path.append

사용법

import sys
sys.path.append("추가할 경로")
print(sys.path)

sys.path.append는 이미 지정되어 있는 sys.path 속성에 append()를 통해 새로운 경로를 추가합니다.

이렇게 추가된 경로는 새롭게 파이썬의 라이브러리를 저장할 수 있는 경로로 인식됩니다.

 

즉 자신이 라이브러리를 넣어 관리할 경로를 따로 지정할 수 있다는 뜻입니다.


구름 IDE와 같은 웹 통합개발환경에서 파이썬 경로 설정하는 법

위 내용은 파이썬의 기본적인 모듈 경로 설정법입니다.

또한 구름 IDE와 같은 웹 통합개발환경에서 사용되는 파이썬 가상 컨테이너의 파이썬 모듈 경로를 변경해 보겠습니다.

 

이 글을 작성하는 이유는 구름 IDE와 같은 웹 통합개발환경에서 파이썬의 sys.path에 모듈 경로를 추가했지만

작동하지 않았기 때문입니다.


1. 홈 디렉터리의. profile 파일 찾기

#. profile 파일은 해당 사용자의 스크립트 파일을 실행시킵니다. (ex. root의. profile일 경우 root만 적용)

/etc/profile 은 전체 사용자 해당

 

root 계정의 홈 디렉토리

root계정의 홈 디렉터리인 root로 들어갑니다.

그냥 ls만 사용하면 나오지 않으니 -a, -al의 옵션을 줍니다.

(ls -a 혹은 ls -al로 검색)

vi 혹은 vim으로. profile을 열어줍니다.

vim .profile

. profile파일의 export PYTHONPATH 부분에 자신이 추가할 모듈 경로에 대한 내용을 작성해 줍니다.

export PYTHONPATH = ""

예시는 아래와 같습니다.

export PYTHONPATH="${PYTHONPATH}:추가할경로"

내용을 추가해 준 후 source. profile 명령어를 통해. profile 스크립트 파일을 실행해 줍니다.

source .profile

source -> 스크립트 실행 명령어

 


모듈을 추가하는 법을 알게 되었으니 다른 모듈 폴더에 위치한 파일을 통해 모듈 import 하는 결과를 확인해 보겠습니다.

 

time_check.py (module file)
loop1.py
Result

다른 파일에 있는 모듈을 정상적으로 import 해서 사용하는 데 성공했습니다.

이로써 자신이 원하는 모듈을 넣은 경로를 성공적으로 인식시켰습니다.

 

 

 


다른 글

 

 

Iptables TCP,ICMP 프로토콜 패킷 제어하기 - 2

작업환경 가상머신 : Virtual Box 7 방화벽(Iptables) : Cent OS 7 사무용 PC(Office PC) : Fedora Workstation 35 DMZ Zone(WebServer) : Fedora Server 관련글 방화벽 활용을 위한 가상 인프라 구축 - 1 // Iptables, CentOS, Web Server,

hobbylists.tistory.com

 

 

광주 수완지구 항공 촬영 사진 - 드론 촬영지 추천

*포스팅에서 사용되는 모든 사진은 상업적 목적으로 촬영되었으므로 무단 사용을 금합니다.* 제 본가는 전...

blog.naver.com

 

 

파이썬 셀레니움 find_element_by_class_name 삭제이슈관련 및 대체방법

작업 날짜 : 2022-08-31 작업환경 : python 3.10.2 작업 라이브러리 버전 : selenium 4.3.0 @app.route('/test_page') def test_page(): driver = webdriver.Chrome('./chromedriver') driver.implicitly_wait(3) driver.get("https://test_link.com") soup

hobbylists.tistory.com

 

 

300x250