티스토리 뷰
참조: https://wikidocs.net/29
[모듈을 불러오는 또 다른 방법]
우리는 지금껏 도스 창을 열고 모듈이 있는 디렉터리로 이동한 다음에나 모듈을 사용할 수 있었다. 이번에는 모듈을 저장한 디렉터리로 이동하지 않고 모듈을 불러와서 사용하는 방법에 대해서 알아보자.
우선 이전에 만든 mod2.py 모듈을 C:\Python\Mymodules
라는 디렉터리를 새로 생성해서 저장한 후 다음의 예를 따라 해보자.
1. sys.path.append(모듈을 저장한 디렉터리) 사용하기
먼저 sys 모듈을 불러온다.
>>> import sys
sys 모듈은 파이썬을 설치할 때 함께 설치되는 라이브러리 모듈이다. sys에 대해서는 뒤에서 다시 다룰 것이다. 이 sys 모듈을 이용해서 파이썬 라이브러리가 설치되어 있는 디렉터리를 확인할 수 있다.
다음과 같이 작성해 보자.
>>> sys.path
['', 'C:\\Windows\\SYSTEM32\\python35.zip', 'c:\\Python35\\DLLs',
'c:\\Python35\\lib', 'c:\\Python35', 'c:\\Python35\\lib\\site-packages']
sys.path는 파이썬 라이브러리들이 설치되어 있는 디렉터리들을 보여 준다. 만약 파이썬 모듈이 위의 디렉터리에 들어 있다면 모듈이 저장된 디렉터리로 이동할 필요없이 바로 불러서 사용할 수가 있다. 그렇다면 sys.path에 C:\Python\Mymodules
라는 디렉터리를 추가하면 아무데서나 불러 사용할 수 있지 않을까?
(※ 도스 창에서는 /
, \
든 상관없지만, 소스코드 안에서는 반드시 /
또는 \\
기호를 사용해야 한다.)
당연하다. sys.path의 결과값이 리스트이므로 우리는 다음과 같이 할 수 있을 것이다.
>>> sys.path.append("C:/Python/Mymodules")
>>> sys.path
['', 'C:\\Windows\\SYSTEM32\\python35.zip', 'c:\\Python35\\DLLs',
'c:\\Python35\\lib', 'c:\\Python35', 'c:\\Python35\\lib\\site-packages',
'C:/Python/Mymodules']
>>>
sys.path.append를 이용해서 C:/Python/Mymodules
라는 디렉터리를 sys.path에 추가한 후 다시 sys.path를 보면 가장 마지막 요소에 C:/Python/Mymodules
라고 추가된 것을 확인할 수 있다.
자, 실제로 모듈을 불러와서 사용할 수 있는지 확인해 보자.
>>> import mod2
>>> print(mod2.sum(3,4))
7
이상 없이 불러와서 사용할 수 있다. 이렇게 특정한 디렉터리에 있는 모듈을 불러와서 사용하고 싶을 때 사용할 수 있는 것이 바로 sys.path.append(모듈을 저장한 디렉터리)이다.
2. PYTHONPATH 환경 변수 사용하기
모듈을 불러와서 사용하는 또 다른 방법으로는 PYTHONPATH 환경 변수를 사용하는 방법이 있다.
다음과 같이 따라 해보자.
C:\Users\home>set PYTHONPATH=C:\Python\Mymodules
C:\Users\home>python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AM...
Type "help", "copyright", "credits" or "license" for more information.
>>> import mod2
>>> print(mod2.sum(3,4))
7
set 도스 명령어를 이용해 PYTHONPATH 환경 변수에 mod2.py 파일이 있는 C:\Python\Mymodules
디렉터리를 설정한다. 그러면 디렉터리 이동이나 별도의 모듈 추가 작업 없이 mod2 모듈을 불러와서 사용할 수 있다.
'BackEnd > Python' 카테고리의 다른 글
[퍼옴] [점프투파이썬] raise 강제 에러를 통해 java interface 구현 (0) | 2017.09.14 |
---|---|
[퍼옴] [점프투파이썬] 패키지 (0) | 2017.09.14 |
[퍼옴] [점프투파이썬] python을 shell 같이 사용해보자. (0) | 2017.09.14 |
[퍼옴] [점프투파이썬] 변수와 메모리 관계 (0) | 2017.09.14 |
[퍼옴] [점프투파이썬] 고급 문자열 포멧팅 (0) | 2017.09.14 |
- spark
- Java
- Configuration
- API
- tensorflow
- Docker
- memory
- mybatis
- 머신러닝
- spring
- 모두의딥러닝
- Error
- Maven
- NIO
- 파이썬
- 중앙정보처리학원
- mysql
- 텐서플로우
- AI
- 점프투파이썬
- TDD
- AWS
- serverless
- ML
- javascript
- BigData
- Gradle
- executor
- web
- python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |