2022년 3월 22일 화요일

윈도우에서 가상환경 설정 및 Jupyter lab

한글윈도우10 에서 가상환경설정

1. 우선 python 이 설치되어 있어야 한다. 

    python 으로 검색하여 최신버전을 다운 받아 설치 한다.

2.  cmd 관리자: 명령프롬프트 에서...

2. python 으로 가상환경을 만든다.(저는 c:\ 에 만듬)

>cd c:\

>pyphon -m venv venv

    두번째 venv    는 가상환경을 만들고자하는 폴더이름입니다. 

    myVenv 등등 적당한 이름 사용

    잠시 기다리면 venv라는 폴더가 만들어졌슴을 dir 하여 확인할 수 있습니다.



C:\venv>.\Scripts\activate 실행하면 화면이 지워지고

(venv) C:\venv>로 프롬프트가 바뀝니다. (venv)가 가상환경을 말합니다.

(venv) C:\venv>python -V

(venv) C:\venv>pip list

하여 확인 list에 2개만 있슴..

(venv) C:\venv>pip install jupyterlab   #하면 많은 파일을 다운 받아 설치합니다.

(venv) C:\venv>jupyter lab 하여 

print('안녕하세요')  Shift + Return 하여 정상을 확인합니다.

콘솔명령에서 한글이 엄청나게 깨어지네요...
! 해결방법은
cmd.exe 명령실행창에서 가상환경으로 들오온다음
(venv) C:\venv>chcp 하여 현재의 코드페이지를 확인합니다.

(venv) C:\venv>chcp
활성 코드 페이지: 949
로 되어 있는 것을 확인한다음.
(venv) C:\venv>chcp65001
(venv) C:\venv>jupyter lab
하여 한글이 깨어지지 아니한 것을 확인 할 수 있습니다.

vscode를 처음 실행시 가상환경 디렉토리를 열고 인터프리터도 이곳의 python으로 지정해야 한다.

을 이것으로

으로 또는 F1 키를 누르고  Select interpreter >> +Enter interpreter path



하여 지정한다.

가상환경이 설치되었으면 기본환경의 phthon library를 전부 삭제하자.
pip list 하여보면 가상환경외의 library 를 확인할 수 있다.
과감히 지우자
pip freeze > requirements.txt
pip uninstall -r requirements.txt


2022년 3월 20일 일요일

pytagcloud 시각화에서 한글문제

 맥 (Mac)에서 pytagcloud 를 이용하여 시각화를 하면서 한글 폰트 때문에 오류가 생겨 구글링을 하였으나 쉽게 해결하지 못하였다.

 영문 폰트로하면 네모박스로 표현되니 분명 폰트 문제인데..

우선 저의 사용환경은 가상터미널에서 사용합니다.

jglee@iMac ~ % cd Projects/exam

jglee@iMac exam % source ./venv/bin/activate

(venv) jglee@iMac exam % jupyter notebook


하여 실행시킨후 

import random
import pytagcloud
import webbrowser

# 가장 출현 빈도수가 높은 40개의 단어를 선정합니다.
ranked_tags = remove_char_counter.most_common(40)

# pytagcloud로 출력할 40개의 단어를 입력합니다. 단어 출력의 최대 크기는 80으로 제한합니다.
taglist = pytagcloud.make_tags(ranked_tags, maxsize=80)

# pytagcloud 이미지를 생성합니다. 폰트는 나눔 고딕을 사용합니다.
pytagcloud.create_tag_image(taglist, 'wordcloud.jpg', size=(900, 600), 
fontname='NanumGothic', rectangular=False)

와 같이 따라하였습니다. 그런데 에러가 발생하였습니다.

/Users/jglee/Projects/exam/venv/lib/python3.9/site-packages/pytagcloud/fonts

에 적당한 한글폰트를 복사하고
fonts.json을 편집하여 앞쪽에 아래와 같이 추가하였습니다.

{
"name": "NanumGothic",
"ttf": "NanumGothic.ttf",
"web": "http://fonts.googleapis.com/css?family=NanumGothic"
},

그래도 똑같은 현상입니다. 폰트가 있는데 전혀 찾지를 못해요.
해서, 파이썬을 실행하고, pytagcloud를 import 한 다음 패스를 확인하였더니 위에 지정한 장소가 아닙니다.

(venv) jglee@iMac exam % 

(venv) jglee@iMac exam % python

Python 3.9.6 (v3.9.6:db3ff76da1, Jun 28 2021, 11:49:53) 

[Clang 6.0 (clang-600.0.57)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> import pytagcloud

pygame 2.1.2 (SDL 2.0.18, Python 3.9.6)

Hello from the pygame community. https://www.pygame.org/contribute.html

>>> print(pytagcloud.__path__)

['/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pytagcloud']

>>> 


/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pytagcloud/fonts

결국 이곳에 폰트를 복사하고 fonts.json에 다시 추가하였더니 되었습니다.

터미널에서 $jupiter notebook 하거나,  vsCode에서 노트북을 불러도 같은 결과입니다.
그런데 궁금한 것은 가상환경의 venv에 있는 라이브러리를 사용하지 않는 다는 것이 이상해요...









2022년 3월 19일 토요일

형태소 분석기 JPype1-py3 설치하기

맥북에서

"이것이 데이터 분석이다"를  따라하다가 konlpy 의 형태소 분석기에서 막혔다.

!pip install konlpy
!pip install jpype1

까지는 잘되었는데

!pip install Jpype1-py3

에서 막혔다.

관련 자료를 검색해보니 Java 가 제대로 설치되지 않았다고 한다.

jre-8u321-macosx-x64.dmg 를 다운받아 설치하고 다시 Jpype1-py3를 설치해도 안된다.

$brew install java

🍺  /usr/local/Cellar/openjdk/17.0.2: 639 files, 305.4MB

sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk

java -version


확인하니 자바는 정상으로 설치가 되었다.


가상환경들어가서

$cd ./exam01

$source ./venv/bin/activate



설치하니 정상으로 설치가된다. (후! 몇시간을 해메였다)

그래도 안된다. 앙!

콘솔에서 하면 잘되는 군요!
vsCode에서 주피터노트북으로 할때 만 잘안되는 경우가 있네요!





2021년 11월 21일 일요일

델파이 11 버전으로 만들어진 윈도우32비트 실행파일을 윈도우XP에서 실행하기.

아직도 각종 기기를 제어하는 시스템에는 윈도우XP를 상당 사용하고 있습니다. (시스템 프로그램에 굳이 비용과 아이센스측면에서 윈도우7 이상을 사용할 이유는 없는 경우가 많습니다) 

iMac 에서 윈도우프로그램을 델파이로 만들어 실행파일을 돌려볼라치면 부트캠프를 사용하거나, 파라랠즈 같은 가상머신을 돌려서하는 방법이 있습니다. 

그런데 가상머신의 용량이 너무커서 부담이되어 패러럴즈에서 윈도우 XP를 설치하여 실험하면 좋겠다고 생각되어 XP를 설치하였습니다.

윈도우 10은 Lite버전을 설치한 후 델파이11 Alexandria 을 설치하였고,
윈도우 XP는 OS만 설치한후 용량입니다.

델파이11버전으로 윈32실행파일을 생성하여 XP에서 실행하려고 하면 "올바른 Win32응용 프로그램이 아닙니다"(아래)라는 경고창을 볼 수 있습니다.

구굴링해본 결과 델파이 11버전의 업그레이드버전에서는 문제가 해결되었다고 하네요.

업그레이드 이전 버전에서는 (수정. 2021.11 업그레이드 이후에도 아래와 같이 바꾸어주어야함)

 PE Header  부분을 6.0 에서 5.1로 수정하면 되더군요.



또는 프로젝트 소스에서 
program notepad_clone;
{$SETPEOSVERSION 5.1}     // 5.1 로 변경
{$SETPESUBSYSVERSION 5.1} // 5.1 로 변경 

만약 쓰레드를 사용하는 경우에는  Delphi 11 Windows XP compatibility tweak 을 참조하세요.

#delphi11 #windowsxp #windows32 #올바른 Win32 응용 프로그램 #delphi







2021년 11월 15일 월요일

iMac Big Sur 에서 윈도우98 설치하여 Delphi6.0을 설치하여 실행

 iMac Big Sur 에서 윈도우98 설치하여 Delphi6.0을 설치하여 실행하였습니다.

DOSBox-X 를 방문하시면 OS X (iMAC등)에서 윈도우98SE 설치방법을 알 수 있습니다.

참고로 위 홈피에서 언급하지 않은 사항만 알려드립니다.

DosBoox-X를 처음 실행하면 디렉토리를 지정하라고 합니다. 저는 문서폴더에 폴더를 하나만들어 지정하였습니다.(나중에 이미지 생성시 이곳에 생성되고, 델파이 .ISO 파일도 이곳에 둡니다)

도스박스 윈도우98 환경은 

/Users/jglee/Library/Preferences/DOSBox-X 0.83.19 Preferences

에 있으니 위 홈피에 나온 방법으로 수정하시면 됩니다.(반드시 수정하셔야  설치에 실수가 없습니다. 진짜 win98Se 정도의 속도 밖에 안나옴니다. 나중에 cpu 설정을 바꾸면 되겠지요)

DosBox-X를 압축해제 한 후 iMac의 Application 폴더로 복사/붙여넣기하신후 런처에서 실행하시면 됩니다.(런처에서 실행시 Preferences 설정환경으로 실행됩니다. Windows98SE 설치 참조)

DosBox-X 에서

IMGMAKE hdd.img -t hd_2gig
IMGMOUNT C hdd.img
IMGMOUNT D Win98.iso
IMGMOUNT A -bootcd D
BOOT A:

윈도우98 설치중 DosBox-X가 종료되면(실제 PC에서는 종료됩니다) 

아래와 같이 지정하고 재부팅하면 관련드라이버를 자동으로 잡습니다. (2회)

IMGMOUNT C hdd.img
IMGMOUNT D Win98.iso
BOOT C:

델파이6.0을 설치하려면 Borland Delphi 6.0 에서 다운 받은 후 압축해제 후 위에서 언급한 디렉토리에 저장하시면 됩니다.

IMGMOUNT C hdd.img
IMGMOUNT D Delphi60.iso
BOOT C:

2021년 11월 11일 목요일

MacOS 에서 Symbolic Link 만들기

MacOS 에서 Symbolic Link 만들기

Terminal 에서 "ln -s " command 를 사용하면 되지만,

Finder 에서 사용하려면..


(1) 아래 GitHub 사이트에서 SymLinker 앱을 다운 받아서 설치하고 수행시킨다.

다운로드

(2) Finder 에서 Services -> Make Symbolic Link 를 선택한다.


Xcode 13.1에서 iOS 10.3 App 생성시 'UIScene' is only available in iOS 13.0 or newer 에러 대처

 모처럼만에 XCode에 iPAD2 를 연결하여 빈화면을 생성하여 실행하려 하였더니.

'UIScene' is only available in iOS 13.0 or newer

가 발생되어 당황하였습니다. 검색결과.. 

SceneDelegate.swift 에서


@available(iOS 13.0, *) // (1)이것을 추가

class SceneDelegate: UIResponder, UIWindowSceneDelegate {



AppDelegate.swift 에서


class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow? // (2)이것을 추가


@available(iOS 13.0, *) // (3)이것을 추가

    func application(_ application: UIApplication, configurationForConnecting 


@available(iOS 13.0, *) // (4)이것을 추가

    func application(_ application: UIApplication,


해주면 되는군요.





2021년 10월 18일 월요일

델파이 소스를 간명하게 하기위한 방법중 하나

델파이 소스를 간명하게 하기위한 방법중 하나입니다.

필드영역에 보면 디자인 이후에 사용되지 않는 컨트롤이 잡다하게 있어 보기 싫을 경우가 있으면 해당 필드를 소스에서만 삭제하면 간명해집니다.  또다른 방법은 해당 콘트롤의 이름 속성을 오브젝트인스펙터에서 지워서 빈칸으로 하면 됩니다.

대신 삭제된 클라스를 ResisterClass()  로 등록해주면 됩니다.

아래 예제 그림 참조!





2021년 9월 17일 금요일

델파이 이전버전의 폼을 불러와 실행하면 스크린에 확대되어 보이는 경우가 있다.

 델파이 이전버전의 폼을 불러와 실행하면 스크린에 확대되어 보이는 경우가 있다.

아마도 아래와 같은 형태일 것이다.

 SnapBuffer = 5

  OnClose = FormClose

  OnCreate = FormCreate

  PixelsPerInch = 192

  DesignSize = (

    2733

    1783)

  TextHeight = 54


에서 처럼 PixelsPerInch = 192 로 되어 있다. 이것을 96으로 바꾸어 주자.

그렇기 위해서는 .DFM 파일을 텍스트로 변환하여야 한다.

델파이에서는 View as Text 가 안된다.

2021년 9월 13일 월요일

Delphi 11에서 RXLIB 2.7.5 사용하기

 Non offcial

다운로드 받은다음

rx.inc 파일 중간을

{$IFDEF VER350} { Embarcadero Delphi 11  }   // 
  {$DEFINE RX_D3}
  {$DEFINE RX_D4}
  {$DEFINE RX_D5}
  {$DEFINE RX_D6}
  {$DEFINE RX_D7}
  {$DEFINE RX_D9}
  {$DEFINE RX_D10}
  {$DEFINE RX_D11}
  {$DEFINE RX_D12}
  {$DEFINE RX_D14}
  {$DEFINE RX_D15}
  {$DEFINE RX_D16}
  {$DEFINE RX_D17}
  {$DEFINE RX_D18}
  {$DEFINE RX_D19}
  {$DEFINE RX_D20}
  {$DEFINE RX_D21}
  {$DEFINE RX_D22}
  {$DEFINE RX_D23}
  {$DEFINE RX_D24}
  {$DEFINE RX_D25}
  {$DEFINE RX_D26}
  {$DEFINE RX_D27} //Sydney specific
  {$DEFINE RX_D28} //Alexandria
{$ENDIF}

로 고치면 됩니다.


델파이의 부활(Antigravity와의 만남)?

 델파이 프로그램을 사용하여 개인적으로 필요한 프로그램을 생성해 왔는데, 얼마전부터 파이썬으로 옮겨갔다.  그런데 Google 의 Antigravity를 만나고 나서 델파이에 대한 미련을 버리지 못해  제미나이가 Delphi이에 대한 학습도 엄청 했을...