초경량, 초고속 분배용 파이톤
보충: 18-10-31 패키지 설치 오류에 대한 대응 방법 보충
보충: 20-11-18 오류 대응 메모
PyInstaller의 글을 별도의 Exe 파일로 작성예전에 썼어요.합니다.
하지만 이보다 더 빠르고 가벼운 방법이 있다.
embeddable pytohon으로 불리며 Windows에서 한정된 것이지만 다운로드한 압축 상태는 7MB이며, 해동 후에도 14MB 정도의 파이토존 실행 환경에 불과하다.
물론 이렇게 하면 포장을 사용할 수 없기 때문에 그 포장의 도입 방법과 결합하여 함께 기재한다.
공식.
3. Windows에서 Python - Python 3.6.4 문서 사용
다운로드
Python Releases for Windows | Python.org
위 페이지에서 Windows x86-64embeddable zip file 동결해제를 다운로드합니다.
또는 Windows PowerShell에서 다음을 수행합니다.(wget을 사용할 수 있어 편리함)
PowerShell
# 作業用フォルダへ移動(適当なところでOK)
cd (適当なところ)
# PowerShellのwgetでファイルをダウンロード(ウィルス対策ソフトに注意)
wget "https://www.python.org/ftp/python/3.6.4/python-3.6.4-embed-amd64.zip" -O "epython_zip.zip"
# 解凍
Expand-Archive -Path epython_zip.zip -DestinationPath epython
최소 구성
pythonNN.dll、pythonNN.zip、vcruntime140.dll이 있으면 파이톤이 움직일 거예요.
python.exe는 pyhonN입니다.dll에 인자만 보내면 실행할 수 있는 파일이기 때문에 독립된 C++에서는 필요하지 않습니다.
(pythenN.zip은 압축 파일이지만 계속 사용하기 때문에 동결을 해제할 수 없습니다. 폴더 이름만 주의하면 동결을 해제해도 사용할 수 있습니다. 자세한 내용은 아래의 "오류 대응"항목을 참조하십시오)
이번에는 다른 구성 파일을 사용하려면 원형을 유지해 주십시오.
PIP
pythonNN._pth 파일을 수정합니다.
이렇게 하면
get-pip.py
사용할 수 없기 때문에 약간의 수정이 필요합니다.편집기에서 다운로드한 파일의 파일을 열기
python36._pth
(숫자 부분은python 버전에 따라 달라짐)python36._pth
# import site
다음을 클릭합니다.python36._pth
import site
및 주석입니다.python 3.6 embed cannot get pip · Issue #7 · pypa/get-pip · GitHub
※ 파이썬 버전에 따라 아래 1줄도
python36._pth
에 추가됩니다.@alphya선생님의 메시지)./Lib/site-packages
그런 다음 https://bootstrap.pypa.io/get-pip.py
파일을 다운로드하거나 PowerShell에서 다운로드 처리를 수행합니다.PowerShell
# 解凍したepythonの中身へ移動
cd epython
# そのままではwgetでダウンロードできないので、下記を実行(PowerShellではデフォルトでTLS1.2が非対応のため)
# 一時的にTLS1.2を有効にします(PowerShellを閉じると解除される)
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
# Wget
wget "https://bootstrap.pypa.io/get-pip.py" -O "get-pip.py"
파일 이름
위에서 설명한 바와 같이 3.6 시스템 이상의 버전이면 다운로드한
python.exe
디렉토리와 같은 디렉토리에 적절한 파일 이름.pth
확장자를 추가한 파일을 만들고 다음 내용을 기재하고 저장합니다.import sys; sys.path.append('')
명령 프롬프트 작업
이렇게 하면
get-pip.py
사용할 수 있기 때문에 설치 작업을 진행해야 한다이제 명령 프롬프트에서 작업을 시작합니다.PowerShell에서 모듈 오류로 인해 수행할 수 없습니다.
주의할 점
get-pip
에 국한되지 않고 루트 환경에 ptyhon을 설치할 때embeddable pythhon인지 루트 환경인지 주의해야 한다.(작업 폴더에 embeddable pythhon이 있는지 여부. 또는 pip
설치 후python -m pip list
등 포장 내용을 확인하십시오.)pip, get-pip 관련 오류가 아래의 오류 대책에 집결되었습니다
cmd
cd (embeddable pythonのフォルダ)
# 念の為、python.exeがあるディレクトリか確認。
dir
# リストの中にpython.exeがあれば、get-pipをインストール
python get-pip.py
이렇게 하면 사용할 수 있다pip
.그렇지만
cmd
# NG
# pip install numpy
# OK
python -m pip install numpy
# エラーが出る場合は以下のようにオプションをつけて実行
python -m pip --no-cache-dir install -I -U numpy
형식python -m pip install (パッケージ名)
.Matplotlib 및 WxPython 시도
Matplotlib으로 도표를 그리면서 wxPython으로 그려보세요.
Package
설치 패키지는 다음과 같습니다.
cmd
python -m pip install numpy
python -m pip install matplotlib
python -m pip install wxpython
테스트 스크립트
테스트 스크립트는 다음 URL을 참조합니다.
main.py
의 이름으로 python.exe
와 같은 층에 저장하십시오.스크립트 참조 소스
python - Embedding a matplotlib figure inside a WxPython panel - Stack Overflow
main.py
#! env python
# -*- coding: utf-8 -*-
from numpy import arange, sin, pi
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure
import wx
class CanvasPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.SetSizer(self.sizer)
self.Fit()
def draw(self):
t = arange(0.0, 3.0, 0.01)
s = sin(2 * pi * t)
self.axes.plot(t, s)
if __name__ == "__main__":
app = wx.PySimpleApp()
fr = wx.Frame(None, title='test')
panel = CanvasPanel(fr)
panel.draw()
fr.Show()
app.MainLoop()
배치 파일 저장
일괄 처리 파일을 같은 레이어
main.cmd
의 이름으로 기록하고 저장합니다.main.cmd
rem このファイルの位置を作業ディレクトリに
cd /d %~dp0
rem main.pyを実行
python.exe main.py
main.cmd
를 실행할 때 도표를 그립니다.용량
카탈로그 용량은 183M 정도다.
포장을 포함해 용량은 확실히 크지만 PyInstaller보다 속도가 빠르다.
오류 대응
“python setup.py egg_info” failed with error code 1
python -m pip install パッケージ名
위에서 설명한 대로 매크로 패키지를 추가하려고 하면 오류가 발생할 수 있습니다.이 오류의 원인은 zip 파일 내의lib2 to 3 같은 포장 내용을 펼칠 수 없기 때문입니다.
대응 방법으로 삼다
1. 첨부 파일의 "PythenN.zip"이 실패할 때 백업, 복사합니다.
2. "PythenN.zip"을 폴더로 확장합니다.
3. 폴더 이름'PythenNN'에서'PythenN.zip'으로 변경합니다.
“python setup.py egg_info” failed with error code 1
https://stackoverflow.com/questions/42962765/embedded-python-3-5-python-setup-py-egg-info-failed-with-error-code-1
해결할 수 없는 상황
업그레이드를 통해 setuptols 버전을 해결할 수 있습니다.2 to 3을 지지하지 않기 때문이다.
https://qiita.com/nkmr_RL/items/85edc2ee68c01ec5582e
python -m pip install setuptools==57.4.0
ERROR: Could not install packages due to an OSError: .....
이쪽 기사에 대책이 쓰여 있다.
Python.h pythonNN.lib
Python.hが見つかりません
, 'python37.lib' を開くことができません。
등의 오류가 발생하면 python -m pip install ....
명령을 실행하기 전에 다음 명령을 사용하여 이 파일을 포함하는 경로를 추가합니다.또 이런 오류는 때때로 컴파일러가 필요하다. Visual Studio 또는build tools를 설치합니다.
예를 들어, Anaconda 및 Miniconda가 설치된 경우 다음과 같습니다.(예: Miniconda)
SET INCLUDE=C:\ProgramData\Miniconda3\include;%INCLUDE%
SET LIB=C:\ProgramData\Miniconda3\libs;%LIB%
ModuleNotFoundError: No module named XXX
같은 층에py 파일이 존재하고 import을 시도하는 중 오류가 발생하면, 이 발생 위치에 다음 스크립트를 추가합니다.
sys.path.append(os.path.dirname(os.path.abspath(sys.argv[0])))
공식.1. Python을 다른 응용 프로그램에 포함 - Python 3.6.4 문서
Pythhon/C API 참조 안내서 - Python 3.6.4 문서
Reference
이 문제에 관하여(초경량, 초고속 분배용 파이톤), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mm_sys/items/1fd3a50a930dac3db299텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)