파이썬
원격지 주피터 노트북 로컬에서 실행하기 Remote Access to Jupyter Notebook via SSHRemote Access to Jupyter Notebook via SSH
2016. 10. 28.원격지 주피터 노트북 로컬에서 실행하기 Remote Access to Jupyter Notebook via SSH 로컬호스트에서 원격지에서 구동중인 Jupyter Notebook 을 실행해보자. 1. 원격지에서 아래와 같이 Ipython notebook 을 실행한다. 원격지에서 브라우저를 띄울 필요는 없으므로 --no-browser 플래그를 추가한다. 해당 포트 방화벽 정책 적용 여부도 확인해본다.12345678(tensorflow)root@localhost:~# ipython notebook --no-browser --port=8889[TerminalIPythonApp] WARNING | Subcommand `ipython notebook` is deprecated and will be removed ..
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (3) - 국가별 WOE ID 찾아서 트렌드 알아보기
2016. 5. 8.국가별로 WOE ID 를 조회하여 트위터를 통해 나타난 트렌드를 알아보고 세계 트렌드와 비교해보는 페이지를 만들어보자. 1. 먼저 국가별 WOE ID 조회에 필요한 패키지를 설치한다. yweather 라는 패키지(https://pypi.python.org/pypi/yweather/0.1)를 이용하여 국가별 WOE ID 를 찾을 수 있는데, yweather 는 Yahoo! Weather RSS feed 인터페이스를 제공하기 위한 파이썬 모듈이다. yweather 설치 123456789envalpha)root@localhost:~/# pip install yweatherCollecting yweather Downloading yweather-0.1.1.tar.gzBuilding wheels for colle..
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (2)
2016. 5. 8.앞의 예제를 응용하여 특정 두 지역의 공통된 트렌드 찾기 본 예제에 사용된 교집합(intersection)외에 집합에 대한 연산은 아래 링크 참조https://docs.python.org/3/library/stdtypes.html#set 12345678910111213141516171819202122232425262728from django.shortcuts import render_to_response, render, redirectimport twitter def get_twitter_trends(request): CONSUMER_KEY = '*****************' CONSUMER_SECRET = '*****************' OAUTH_TOKEN = '*****************..
Yahoo GeoPlanet 를 이용한 트위터에서 유행하는 주제 알아보기 (1)
2016. 5. 8.Yahoo GeoPlanet 를 이용하여 트위터에서 유행하는 주제를 알아보자.야후 GeoPlanet 의 Where On Earth(WOE) ID 시스템은 지구상의 장소와 고유의 식별자를 매핑시키는 방법을 제공한다.이 API 를 이용하여 한정된 쿼리를 실행해보자. [참조링크] https://dev.twitter.com/rest/reference/get/trends/place https://developer.yahoo.com/geo/geoplanet/guide/concepts.html [WOE ID 검색]아래의 사이트를 통해서 WOE ID를 찾을 수 있다.http://woeid.rosselliot.co.nz/ 서울의 경우 1132599 이다. District-County Province-StateCountr..
트위터 계정 접근을 위한 어플리케이션 인증
2016. 5. 8.트위터의 데이터를 활용하기 위한 OAuth 인증증명과 API 접근 획득을 위해서는 아래 사이트에서 새로운 트위터 어플리케이션을 생성해야 한다. https://apps.twitter.com/ 〉 CREATE NEW APP 제대로 연결되었는지 확인해보기 위해 아래와 같이 작성한 후 출력해보자. 123456789101112131415from django.shortcuts import render_to_response, render, redirectimport twitter def get_twitter_data(request): CONSUMER_KEY = '********************' CONSUMER_SECRET = '****************' OAUTH_TOKEN = '*************..
Anaconda for Windows와 Django 설치
2016. 2. 11.1. Windows Anaconda 설치 https://www.continuum.io/downloads 2. 가상환경 설정 12345C:\Users\fukaeri>mkdir haskelC:\Users\fukaeri>cd haskelC:\Users\fukaeri\haskel>python3 -m venv envhaskelC:\Users\fukaeri\haskel>envhaskel\Scripts\activate(envhaskel) C:\Users\fukaeri\haskel>cs 3. 장고 설치 1) 설치된 장고 확인 - 아래에서 보다시피 django 라는 모듈이 없다. 123456789(envhaskel) C:\Users\fukaeri>pythonPython 3.5.1 |Anaconda 2.5.0 (32-bi..
파이썬 시퀀스 구조 - (1) 리스트
2015. 12. 23.데이터 타입이 원자(atom) 라면, 자료구조는 분자(molecule)에 해당즉, 데이터 타입의 결합임 시퀀스 구조 항목의 정수 위치로 시퀀스의 항목을 나타냄문자열은 문자의 시퀀스, 리스트는 모든 것의 시퀀스리스트와 튜플 - 0 혹은 그 이상의 항목을 포함, 어떤 객체도 요소가 될 수 있음. 리스트 list변경가능 mutable 데이터의 순차적 파악에 유용내용의 순서가 바뀔 수 있는 경우에 유용동일한 값이 여러번 나타날 수 있음 생성 empty_list =[] 또는 empty_list = list() 데이터타입 변환 list() 오프셋으로 항목 얻기 0부터 시작음수의 인덱스는 끝에서 거꾸로 값을 추출범위 벗어나면 list index out of range 리스트의 리스트 all_books[1][0] 두번..
셀레늄(Selenuim) 설치 및 테스팅 (윈도우/파이썬)
2015. 11. 28.1. 파이썬 2.x 또는 3.x 설치https://www.python.org/downloads/ 2. 셀레늄 설치파이썬을 실행한 후 아래와 같이 셀레늄 설치(설치버전 또는 설치경로에 따라 다를 수 있음) C:\Python34\Scripts\pip.exe install selenium 3. 테스팅 스크립트 작성 functional_test.py from selenium import webdriver browser = webdriver.Firefox() browser.get('http://localhost:8000') assert 'Django' in browser.title 아래와 같이 소문자로 입력시 TypeError 를 발생시키게 되므로 주의한다. browser = webdriver.firefox() ..
ImportError: No module named mechanize
2015. 10. 23.ImportError: No module named mechanizemechanize 설치 (envtread)root@localhost:~/antifragile# pip install mechanizeCollecting mechanize Downloading mechanize-0.2.5.tar.gz (383kB) 100% |████████████████████████████████| 385kB 441kB/sBuilding wheels for collected packages: mechanize Running setup.py bdist_wheel for mechanize Stored in directory: /root/.cache/pip/wheels/76/df/92/81fc6784ee60ceb2871e73..
우분투(Ubuntu) 아나콘다(Anaconda) 설치
2015. 9. 27.아나콘다는 파이썬(3.4.3, 3.3.5, 2.7.10, and/or 2.6.9)을 포함하여 150여개의 과학 및 분석에 사용되는 파이썬 패키지를 손쉽게 설치해주는프로그램이다. 아나콘다 설치 방법에 대해서는 아래 링크를 참조한다. http://docs.continuum.io/anaconda/install 우분투 등 리눅스 운영체제의 경우 아나콘다를 다운로드한 후 아래 명령을 실행한 후 터미널을 종료하고 다시 실행하면 된다. bash ~/Downloads/Anaconda-2.3.0-Linux-x86_64.sh 위의 사이트에서 다운로드받지 않고 아래와 같이 wget을 이용해서 직접 다운로드할 수도 있다. wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b0..
장고 소스 파일 위치 찾기 (Where are the Django source files?)
2015. 9. 24.장고 소스 파일의 위치는 다음과 같이 찾을 수 있다. C:\Users\fukaeri>python Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi n32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path = sys.path[1:] >>> import django >>> print(django.__path__) ['C:\\Python27\\lib\\site-packages\\django-1.9-py2.7.egg\\django'] >>>
Django에서 ForeignKey 사용시 NameError 가 뜨는 경우
2015. 9. 12.Django에서 ForeignKey 사용시 NameError 가 뜨는 경우 아래 예제에서와 같이 Chpater 클래스에서 UserInfor 클래스의 sn 을 Foreign Key 관계를 맺을려고 하는 경우 아래와 같이 NameError가 뜨는 경우이다. NameError : .... is undefined. class Chapter(models.Model): sn = models.ForeignKey(UserInfo) .......... class UserInfo(models.Model): sn= models.CharField(max_length=20, primary_key=True) nm = models.CharField(max_length=50, blank=True, null=True) userid =..
외부에서 장고 웹서버 접속하기(Accessing local django webserver from outside)
2015. 9. 10.외부에서 장고 웹서버에 접속하기 위해서는 서버의 호스트나 포트를 변경해야 한다. 아래에서 이에 대해 살펴본다. 기본적으로 장고는 포트 8000 으로 실행된다. 만약 서버 포트를 변경하고 싶다면 아래와 같이 한다. python manage.py runserver 8080 이렇게 실행을 하였다고 해서 http://127.0.0.1:8000/ 으로 접속하는 것이 불가능한 것은 아니다. http://127.0.0.1:8000 과 http://127.0.0.1:8080 둘다 가능하다고 보면 된다. 그리고 IP 주소를 지정함으로서 로컬이 아닌 외부에서도 접속이 가능하다. 다음과 같이 실행한다. python manage.py runserver 0.0.0.0:8000 여기서 0.0.0.0 라는 IP 주소는 어떤 네트워..
파이썬, 장고, 그리고 오라클 데이터베이스 연결하기 (2)
2015. 8. 25.1. Customizing change lists 앞서 만든 user 조회 어플리케이션을 실행해보면 아래와 같이 해당 사용자의 이름이 구분되지 않고 일괄적으로 MstUser object 라고 표시되어 알아보기 힘들다. 이 부분부터 고쳐보자. bourne_users/admin.py 파일을 아래와 같이 수정한다보여주고자 하는 컬럼명을 fieldsets 에 넣고, list_display 에는 리스트에 보여주고 하는 항목을 넣는다from django.contrib import admin from bourne_users.models import MstUser class MstUserAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['usn']}), ('Regi..
파이썬, 장고, 그리고 오라클 데이터베이스 연결하기 (1)
2015. 8. 23.Using the Django Framework with Python and Oracle Database (1) 본 게시물에서는 파이썬, 장고, 오라클을 이용하여 기존 오라클 데이터베이스의 자료를 조회할 수 있는 페이지를 만들어보고자 한다. http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/python_django/python_django.htm 파이썬을 만든 Guido van Rossum at PyCon 2013 [1단계] 1. 앞서 밝혔듯이 본 게시물의 작성 목표는 기존에 설치된 Oracle Database 에 연결하여 데이터 조회를 위한 페이지를 만드는 것이다. 2. 본격적인 작업에 앞서 연결할 데이터베이스의 username, p..
[django] admin 계정 패스워드 리셋하는 방법
2015. 7. 16.지금까지 장고django 로 기본 사이트 구성하는 것에 대해 올려드렸습니다. 이어서 게시물을 올리려고 하는데, 갑자기 계정 정보가 생각이 나지 않습니다. 이런.... 어떻게 하면 다시 로그인할 수 있을까요?아래와 같이 실행하면 현재 슈퍼유저 계정 목록과 패스워드를 리셋하실 수 있으니 참고하시기 바랍니다. (venv)root@cloud:~/mysite# python manage.py shellPython 2.7.3 (default, Aug 1 2012, 05:14:39)[GCC 4.6.3] on linux2Type "help", "copyright", "credits" or "license" for more information.(InteractiveConsole)>>> from django.contrib..
[django] Write your first view
2015. 7. 13.뷰라는 것은 특정한 기능을 수행하고 특정한 템플릿을 지닌 장고 어플리케이션의 웹페이지의 한 유형이다.장고에서는 웹페이지와 기타 컨텐츠가 뷰에 의해 수행된다. 각각의 뷰는 간단한 파이썬 함수에 의해 표현된다. 현재 진행중인 투표 어플리케이션의 경우 아래의 4가지 뷰를 가진다.- 질문 '인덱스' 페이지 : 최근의 몇 가지 질문 표시- 질문 '상세' 페이지 : 질문의 내용 및 투표할 수 있는 폼 포함- 질문 '투표결과' 페이지 : 특정 질문에 대한 결과치 표시- 투표 행위 : 특정한 질문에 대해 특정한 대답을 하는 행위 관리 Write your first view첫 번째 뷰를 만들어 본다. polls/views.py 파일을 열어 다음 코드를 삽입한다. polls/views.pyfrom django.http i..
[django] Customize the admin look and feel
2015. 7. 13.Customizing your project’s templates프로젝트 디렉토리(manage.py 파일을 포함한 디렉토리)에 탬플릿 디렉토리를 생성해보자.setting.py 파일을 열어 템플릿 설정에서 DIRS 옵션을 수정하자. /root/mysite/mysite/settings.py DIRS는 장고 템플릿이 로딩되었을 때 체크해야할 파일시스템 디렉토리의 리스트이다. 장고 소스 파일이 위치한 디렉토리의 admin 템플릿에서 admin/base_site.html 을 복사하여 방금 생성한 admin 디렉토리에 복사한다. 장고 소스 파일 위치는 아래와 같이 찾을 수 있다. root@seoul:~# python -c" > import sys > sys.path = sys.path[1:] > import dja..
[django] Adding related objects
2015. 7. 13.Adding related objects 하나의 질문에 여러 개의 보기가 있을 수 있음에도, 예제 이미지에는 보기가 보이지 않는다.이 경우 아래와 같이 해결한다. "Question" 필드는 select box 형태를 지니고 있고 현재 존재하는 모든 질문이 들어간다. 즉, 답변이 질문에 대해 가지는 FK 관계가 박스로 표현되는 것이다. 하지만 위와 같이 답변 문항을 생성하는 것은 비효율적이다. 한꺼번에 해당 질문에 대한 답변을 등록할 수 있다면 더욱 효과적일 것이다. 먼저 Choice 모델을 호출하는 register() 를 삭제한 후 다음과 같이 코딩한다. 아래의 의미는 다음과 같다. Choice 오브젝트는 어드민 페이지의 Question 에서 편집 가능하며, 기본값으로 3개의 답변 필드를 가진다. 하지만..
[django] Creating an admin user, Explore the free admin functionality, Customize the admin form
2015. 7. 13.Creating an admin user어드민 사이트에 로그인할 수 있는 관리자 계정을 아래와 생성한다. (venv)root@seoul:~/mysite# python manage.py createsuperuser Username (leave blank to use 'root'): admin Email address: beingawesome@naver.com Password: Password (again): Superuser created successfully. (venv)root@seoul:~/mysite#Start the development server어드민 페이지는 기본적으로 활성화된다.http://127.0.0.1:8000/admin/ 과 같은 형식으로 접속한다. Enter the admin s..
[django] Playing with the API
2015. 7. 13.Playing with the API 단순히 "python"이라고 입력하는 대신에, 앞으로는 아래와 같이 사용할 것이다.왜냐하면 manage.py 가DJANGO_SETTINGS_MODULE 환경변수(mysite/settings.py file 의 경로를 가져온다)를 설정해주는 역할을 하기 때문이다. $ python manage.py shell아래와 같이 DJANGO_SETTINGS_MODULE 환경 변수를 직접 설정하는 방법도 있다.>>> import django >>> django.setup()manage.py 파일이 위치한 디렉토리에서 파이썬을 실행해야 한다.더욱 자세한 내용은 django-admin 문서에서 확인가능하다.이제 그러면 데이터베이스 API 를 살펴보자. # 방금 작성한 모델 클래스를 가져..
[django] 프로젝트 생성, 데이터베이스 설정, 서버 실행 (Creating a project, Database setup, The development server)
2015. 7. 13.예제로 투표 시스템을 만들어 본다. 2가지 부분으로 구성이 되는데,1. 사용자가 개설된 투표 목록을 보고 투표 행위를 하는 부분과2. 투표를 추가/변경/삭제하는 관리자 페이지 부분이다. ※ 참고 : 예제는 Django 1.8 과 Python 2.7 버전 기준이다. Creating a project Django가 처음이라면 Django 프로젝트를 생성하는 몇 가지 코드를 실행해야 한다. (venv)root@seoul:~# django-admin startproject mysite 생성된 모습을 확인해보자.mysite/a container for your project. Its name doesn’t matter to Django; you can rename it to anything you like. ma..
numpy - Arrays (8) (ArrayArray item selection and manipulation)
2015. 4. 11.Array item selection and manipulation Boolean array 의 array selectors 로의 활용 >>> a = np.array([[6,4],[5,9]], float) >>> print a [[ 6. 4.] [ 5. 9.]] >>> a >= 6# Boolean array 는 array selectors 로 사용가능하다 array([[ True, False], [False, True]], dtype=bool)# True인 원소만 반환 >>> a[a>=6] array([ 6., 9.]) Integer arrays의 사용 >>> a = np.array([2,4,6,8], float) >>> b = np.array([0,0,1,3,2,1], int) >>> print a [..
numpy - Arrays (7) (Comparison operators and value testing)
2015. 4. 11.Comparison operators and value testing 동일한 사이즈의 배열에서 원소 단위로 비교 가능반환값은 True/False 이며, 결과값은 배열은 저장가능 >>> a=np.array([1,3,0], float) >>> b=np.array([0,3,2], float) >>> a > b array([ True, False, False], dtype=bool)>>> a == b array([False, True, False], dtype=bool) >>> a >> c = a>b >>> c array([ True, False, False], dtype=bool) >>> broadcasting 을 통해 단일값과도 비교 가능 >>> a = np.array([1,3,0], float) >>> a..
numpy - Arrays (4) (Array iteration)
2015. 3. 8.Array iteration list 와 유사한 방식으로 배열에 대해 반복이 가능하다 >>> a = np.array([1, 4, 5], int) >>> for x in a: ... print x ... 1 4 5 다차원 배열의 경우 >>> a = np.array([[1, 2], [3, 4], [5, 6]], float) >>> for x in a: ... print x ... [ 1. 2.] [ 3. 4.] [ 5. 6.] 곱하기 연산도 가능 >>> a = np.array([[1, 2], [3, 4], [5, 6]], float) >>> for (x, y) in a: ... print x * y ... 2.0 12.0 30.0
python print x IndentationError
2015. 3. 8.파이썬은 블럭을 정의하기 위해 들여쓰기(Indentation)을 사용한다. 무슨 말이냐 하면, 어느 부분이 for 문 또는 if 문에 의해 컨트롤되는지를 보여주기위한 것이다. 들여쓴 부분은 해당 문에 의해 컨트롤됨을의미한다. 아래와 같은 for 문이 그러한 경우로, 이 경우에는 그저 print x 를 부분을 for 문보다 안으로 들여쓰기만 하면 되는 것이다.
numpy - Arrays (4) (Array mathematics)
2015. 2. 28.Array mathematics 기본적인 수학 연산이 가능합니다. 이 경우 원소 대 원소로 적용이 됩니다. 즉, 더하기, 빼기 등의 연산은 기본적으로 같이 사이즈여야 한다는 것이죠. >>> a = np.array([1,2,3], float) >>> b = np.array([5,2,6], float) >>> a + b array([6., 4., 9.]) >>> a – b array([-4., 0., -3.]) >>> a * b array([5., 4., 18.]) >>> b / a array([5., 1., 2.]) >>> a % b array([1., 0., 3.]) >>> b**a array([5., 4., 216.]) 2차원 array 에서 곱하기 연산은 행렬곱을 따르는 것이 아니라 원소 단위로 이루..
numpy - Arrays (3) (Array를 만드는 다른 방법들)
2015. 2. 28.Other ways to create arrays arange >>> np.arange(5, dtype=float) array([ 0., 1., 2., 3., 4.]) >>> np.arange(1, 6, 2, dtype=int) array([1, 3, 5]) zeros / ones 0 또는 1 을 가진 특정 dimension 의 array 생성 >>> np.ones((2,3), dtype=float) array([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> np.zeros(7, dtype=int) array([0, 0, 0, 0, 0, 0, 0]) zeros_like / ones_like 현존하는 array 와 동일한 dimension 과 데이터 타입을 가지는 0 또는 1 로 이루어진 ..
numpy - Arrays (2)
2015. 2. 26.copy copy 함수를 통해 새로운 array 생성 가능 >>> a = np.array([1,2,3], float) >>> b = a >>> c = a.copy() >>> a array([ 1., 2., 3.]) >>> b array([ 1., 2., 3.]) >>> c array([ 1., 2., 3.]) tolist array 로부터 list 생성 가능 >>> a = np.array([1, 2, 3], float) >>> a.tolist() [1.0, 2.0, 3.0] >>> list(a) [1.0, 2.0, 3.0] tostring / fromstring tostring 함수(binary 문자열로 변환)와 fromsrting 함수(역으로 binary 에서 array 생성) 대량의 array 데이터..
numpy - Arrays (1)
2015. 2. 26.Array Python 의 리스트와 유사한 개념 하지만 array 의 구성요소는 모두 동일한 데이터 타입이어야 한다는 점이 다름 importing NumPy >>> import numpy as np 버전 확인 >>> numpy.version.full_version '1.9.1' Array 기본 구조 (1) >>> a = np.array([1,4,5,8], float) // 2개의 인수를 가짐. 두번째 인수는 데이터타입 >>> a array([ 1., 4., 5., 8.]) >>> type(a) // N-dimensional array >>> a[:2] array([ 1., 4.]) >>> a[3] 8.0 >>> a[0] = 5. >>> a array([ 5., 4., 5., 8.]) Array 기본 구조..