本文介绍了安装pyotherside后导入错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试从ubuntu存储库(软件包qml-module-io-thp-pyothersidepyotherside)以及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后导入错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 01:23