安装pyotherside后导入报错
Import Error after installing pyotherside
我尝试从 ubuntu 存储库(软件包 qml-module-io-thp-pyotherside
和 pyotherside
)以及 git repo.[=15= 安装 pyotherside
]
但是在 Python3 中导入它时,我不断得到 ImportError: No module named 'pyotherside'
。
有人知道为什么吗?我应该找到安装 pyotherside 的路径是什么?
OS: Ubuntu 16.04.2
PyOtherSide
是一个使用 QML
中的 python 代码的库,反之亦然,在您的项目中,您必须有 qml 文件和 python 文件。要运行程序你必须执行qml,例如:
{your directory}
├── imageprovider.py
└── imageprovider.qml
imageprovider.py
import pyotherside
import math
def render(image_id, requested_size):
print('image_id: "{image_id}", size: {requested_size}'.format(**locals()))
# width and height will be -1 if not set in QML
if requested_size == (-1, -1):
requested_size = (300, 300)
width, height = requested_size
# center for circle
cx, cy = width/2, 10
pixels = []
for y in range(height):
for x in range(width):
pixels.extend(reversed([
255, # alpha
int(10 + 10 * ((x - y * 0.5) % 20)), # red
20 + 10 * (y % 20), # green
int(255 * abs(math.sin(0.3*math.sqrt((cx-x)**2 + (cy-y)**2)))) # blue
]))
return bytearray(pixels), (width, height), pyotherside.format_argb32
pyotherside.set_image_provider(render)
imageprovider.qml
import QtQuick 2.0
import io.thp.pyotherside 1.5
Image {
id: image
width: 300
height: 300
Python {
Component.onCompleted: {
// Add the directory of this .qml file to the search path
addImportPath(Qt.resolvedUrl('.'));
importModule('imageprovider', function () {
image.source = 'image://python/image-id-passed-from-qml';
});
}
onError: console.log('Python error: ' + traceback)
}
}
你打开一个终端运行:
qmlscene {your directory}/imageprovider.qml
我尝试从 ubuntu 存储库(软件包 qml-module-io-thp-pyotherside
和 pyotherside
)以及 git repo.[=15= 安装 pyotherside
]
但是在 Python3 中导入它时,我不断得到 ImportError: No module named 'pyotherside'
。
有人知道为什么吗?我应该找到安装 pyotherside 的路径是什么?
OS: Ubuntu 16.04.2
PyOtherSide
是一个使用 QML
中的 python 代码的库,反之亦然,在您的项目中,您必须有 qml 文件和 python 文件。要运行程序你必须执行qml,例如:
{your directory}
├── imageprovider.py
└── imageprovider.qml
imageprovider.py
import pyotherside
import math
def render(image_id, requested_size):
print('image_id: "{image_id}", size: {requested_size}'.format(**locals()))
# width and height will be -1 if not set in QML
if requested_size == (-1, -1):
requested_size = (300, 300)
width, height = requested_size
# center for circle
cx, cy = width/2, 10
pixels = []
for y in range(height):
for x in range(width):
pixels.extend(reversed([
255, # alpha
int(10 + 10 * ((x - y * 0.5) % 20)), # red
20 + 10 * (y % 20), # green
int(255 * abs(math.sin(0.3*math.sqrt((cx-x)**2 + (cy-y)**2)))) # blue
]))
return bytearray(pixels), (width, height), pyotherside.format_argb32
pyotherside.set_image_provider(render)
imageprovider.qml
import QtQuick 2.0
import io.thp.pyotherside 1.5
Image {
id: image
width: 300
height: 300
Python {
Component.onCompleted: {
// Add the directory of this .qml file to the search path
addImportPath(Qt.resolvedUrl('.'));
importModule('imageprovider', function () {
image.source = 'image://python/image-id-passed-from-qml';
});
}
onError: console.log('Python error: ' + traceback)
}
}
你打开一个终端运行:
qmlscene {your directory}/imageprovider.qml