问题描述
我尝试从ubuntu存储库(软件包qml-module-io-thp-pyotherside
和pyotherside
)以及pyotherside > git repo .
I tried installing pyotherside
from the ubuntu repos (packages qml-module-io-thp-pyotherside
and pyotherside
) as well as from the git repo.
但是在Python3中将其导入时,我总是得到ImportError: No module named 'pyotherside'
.
But in when importing it in Python3 I keep getting ImportError: No module named 'pyotherside'
.
有人知道为什么吗?我应该在哪里找到安装pyotherside的路径?
Any knows why? What is the path where I should find pyotherside installed?
操作系统:Ubuntu 16.04.2
OS: Ubuntu 16.04.2
推荐答案
PyOtherSide
是一个使用QML
中的python代码而不是相反的库,在您的项目中,您必须使用qml文件和python文件.要运行该程序,您必须执行qml,例如:
PyOtherSide
is a library that uses the python code from QML
and not vice versa, in your project you must the qml file and the python file. To run the program you must execute the qml, for example:
{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
这篇关于安装pyotherside后导入错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!