pip3 업그레이드

pip 가 최신버전이 아닐 때에 flask를 설치하면, import 시

flask ImportError: cannot import name ‘escape’

이와 같은 오류가 발생한다.

pip 업그레이드를 위해 get-pip 를 설치한다.

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py

다만 python3 버전이 3.5 이하인 경우, 다음과 같이 실행한다.

curl https://bootstrap.pypa.io/pip/3.5/get-pip.py  -o get-pip.py
python3 get-pip.py

파이썬 코드 컴파일

파이썬 코드 보안을 위하여 컴파일 하는 경우 아래 명령어 적용

python -m py_compile [파일명] #python2, python3 모두 해당
pycompile [파일명]  #python2
py3compile [파일명] #python3

pycompile 코드를 이용하여 컴파일하면 python2의 경우에는 원본 코드와 같은 폴더 내에 pyc 파일이 생성되며, python3 의 경우에는 원본코드와 같은 폴더의 __pycache__ 폴더 내에 pyc 코드가 생성된다.

RuntimeError: Bad magic number in .pyc file

생성된 pyc 파일을 실행 시 위와 같은 에러가 발생하였을 때에는, 파이썬 버전을 명시하여 컴파일한다.

파이썬2에서 컴파일한 코드를 파이썬3에서 실행할 때, 혹은 그 반대의 경우에도 발생한다. python의 하위버전이 맞지 않을 때에도 발생. (예: 파이썬 3.6을 이용하여 컴파일하고, python3.7에서 실행하는 경우)

py3compile -V3.1-3.8 [파일명] #파이썬 버전 3.1 - 3.8까지 모두 작동하도록 작성

Modbus (pyModbusTCP)

설치

pip3 install pyModbusTCP

클라이언트 가동

from pyModbusTCP.client import ModbusClient
import sys

c = ModbusClient(host="localhost",port=502) #set host and port
if not c.is_open():
c.open()

if not c.is_open():
print("연결실패. 프로그램 종료")
sys.exit()

addr = 0 # 주소 할당 ( 0 to 65533 )
c.write_single_coil(addr,True) #코일 입력
c.write_single_register(addr,12345) #레지스트리 입력
c.write_multiple_coils(addr,[True,True,True]) # addr주소부터 주소값을 하나씩 늘려 리스트에 입력된값을 차례대로 할당
c.write_multiple_registers(addr,[11,222,333]) # addr주소부터 주소값을 하나씩 늘려 리스트에 입력된값을 차례대로 할당
n_read = 3 #읽어들일 값의 갯수
c.read_coils(addr,n_read)
c.read_holding_registers(addr,n_read)

c.close() #종료

서버 가동

 
from pyModbusTCP.server import ModbusServer

server = ModbusServer(host="192.168.aa.bb", port=502) #서버정보와 포트정보 입력. 서버는 localhost라고 쓰면 안되고, 아이피주소를 명시해야하는 듯
server.start()

Anaconda

아나콘다 3 설치

홈페이지에서 받아서 설치

.Do you wish the installer to initialize Anaconda3 in your /home/#####/.bashrc ? [yes|no] [no] >>> yes

yes로 대답한다.

bunzip2 명령어를 못 찾는 경우,

sudo apt-get install bzip2 

명령어 활성. ~/.bashrc  최하단에 다음 내용 추가

source anaconda3/etc/profile.d/conda.sh


환경생성

conda create -n [환경이름]

환경 활성/비활성화

conda activate [환경이름]
conda deactivate [환경이름]

환경 목록

conda info --envs

환경 제거

conda remove -n [환경이름] --all

환경 복사본

conda create --name [새로운환경이름] --clone [복사대상환경이름]