mirror of
https://github.com/hanzoai/pack.git
synced 2026-09-30 23:43:13 +00:00
support pycairo (#178)
* support pycairo * merge pycairo example with system deps
This commit is contained in:
@@ -63,8 +63,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libpq-dev python3-dev'",
|
||||
"customName": "install apt packages: libpq-dev python3-dev"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y libcairo2-dev libpq-dev python3-dev'",
|
||||
"customName": "install apt packages: libcairo2-dev libpq-dev python3-dev"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
@@ -170,8 +170,8 @@
|
||||
],
|
||||
"commands": [
|
||||
{
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y ffmpeg libpq5 poppler-utils'",
|
||||
"customName": "install apt packages: ffmpeg libpq5 poppler-utils"
|
||||
"cmd": "sh -c 'apt-get update \u0026\u0026 apt-get install -y ffmpeg libcairo2 libpq5 poppler-utils'",
|
||||
"customName": "install apt packages: ffmpeg libcairo2 libpq5 poppler-utils"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
|
||||
@@ -260,7 +260,7 @@ func (p *PythonProvider) InstallPip(ctx *generate.GenerateContext, install *gene
|
||||
func (p *PythonProvider) AddRuntimeDeps(ctx *generate.GenerateContext) {
|
||||
for dep, requiredPkgs := range pythonRuntimeDepRequirements {
|
||||
if p.usesDep(ctx, dep) {
|
||||
ctx.Logger.LogInfo("Installing apt packages for %s", dep)
|
||||
ctx.Logger.LogInfo("Installing runtime apt packages for %s", dep)
|
||||
ctx.Deploy.AddAptPackages(requiredPkgs)
|
||||
}
|
||||
}
|
||||
@@ -278,6 +278,13 @@ func (p *PythonProvider) GetBuilderDeps(ctx *generate.GenerateContext) *generate
|
||||
miseStep := ctx.GetMiseStepBuilder()
|
||||
miseStep.SupportingAptPackages = append(miseStep.SupportingAptPackages, "python3-dev")
|
||||
|
||||
for dep, requiredPkgs := range pythonBuildDepRequirements {
|
||||
if p.usesDep(ctx, dep) {
|
||||
ctx.Logger.LogInfo("Installing build apt packages for %s", dep)
|
||||
miseStep.SupportingAptPackages = append(miseStep.SupportingAptPackages, requiredPkgs...)
|
||||
}
|
||||
}
|
||||
|
||||
if p.usesPostgres(ctx) {
|
||||
miseStep.SupportingAptPackages = append(miseStep.SupportingAptPackages, "libpq-dev")
|
||||
}
|
||||
@@ -470,7 +477,13 @@ func (p *PythonProvider) getRuntime(ctx *generate.GenerateContext) string {
|
||||
}
|
||||
|
||||
// Mapping of python dependencies to required apt packages
|
||||
|
||||
var pythonBuildDepRequirements = map[string][]string{
|
||||
"pycairo": {"libcairo2-dev"},
|
||||
}
|
||||
|
||||
var pythonRuntimeDepRequirements = map[string][]string{
|
||||
"pycairo": {"libcairo2"},
|
||||
"pdf2image": {"poppler-utils"},
|
||||
"pydub": {"ffmpeg"},
|
||||
"pymovie": {"ffmpeg", "qt5-qmake", "qtbase5-dev", "qtbase5-dev-tools", "qttools5-dev-tools", "libqt5core5a", "python3-pyqt5"},
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from pdf2image import convert_from_path, convert_from_bytes
|
||||
from pydub import AudioSegment
|
||||
from pydub.playback import play
|
||||
import cairo
|
||||
|
||||
# pdf2image
|
||||
images = convert_from_path('./test.pdf')
|
||||
@@ -10,5 +11,9 @@ print(images)
|
||||
sound = AudioSegment.from_file("test.mp3", format="mp3")
|
||||
print(sound)
|
||||
|
||||
# pycairo
|
||||
surface = cairo.SVGSurface("example.svg", 200, 200)
|
||||
print(surface)
|
||||
print("PyCairo version:", cairo.version)
|
||||
|
||||
print("Hello from Python with system deps")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
psycopg2-binary==2.9.10
|
||||
pdf2image==1.0.0
|
||||
pydub==0.25.1
|
||||
# pycairo==1.27.0
|
||||
pycairo==1.27.0
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
[
|
||||
{
|
||||
"expectedOutput": "Hello from Python with system deps"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user