ModuleNotFoundError: нет модуля с именем 'pkg_resources' - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь сделать код, написанный на Python, APK, используя kivy и buildozer.Чтобы импортировать панд с помощью kivy, я недавно создал свой собственный рецепт (pandas).

  • Ubuntu 16.04
  • Python 3.7.1

Виртуальная среда по pipinv выглядит следующим образом:

% pipenv run pip freeze --all
appdirs==1.4.3
buildozer==0.40.dev0
colorama==0.4.1
Cython==0.28.2
Jinja2==2.10.1
MarkupSafe==1.1.1
numpy==1.16.4
pandas==0.24.2
pep517==0.5.0
pexpect==4.7.0
pip==19.1.1
ptyprocess==0.6.0
python-dateutil==2.8.0
python-for-android==0.7.0
pytoml==0.1.20
pytz==2019.1
setuptools==41.0.1
sh==1.12.14
six==1.12.0
virtualenv==16.6.0
wheel==0.33.4

init.py из рецепта tihs, который рассматривал зависимость, выглядит следующим образом:

from pythonforandroid.recipe import PythonRecipe

class PandasRecipe(PythonRecipe):

    version = '0.24.2'
    url = 'https://files.pythonhosted.org/packages/b2/4c/b6f966ac91c5670ba4ef0b0b5613b5379e3c7abdfad4e7b89a87d73bae13/pandas-{version}.tar.gz'
    depends = [('python2', 'python2legacy', 'python3', 'python3crystax'), 'numpy', 'pytz', 'dateutil']

    site_packages_name = 'pandas'

recipe = PandasRecipe()

Также в buildozer.spec requirements = python3, kivy, android, setuptools, numpy, pandas указаны.

main.py и test.kv:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
from kivy.properties import NumericProperty
from kivy.utils import get_color_from_hex
import numpy as np
# import pandas as pd

a = np.array([0, 1, 2])
b = np.array([1, 2, 3])
c = np.array([2, 3, 4])
ab = np.dot(a, b)
bc = np.dot(b, c)
ca = np.dot(c, a)

class TextWidget(Widget):

    number = NumericProperty(0)

    def buttonClicked(self):
        self.number = int(ab)

    def buttonClicked2(self):
        self.number = int(bc)

    def buttonClicked3(self):
        self.number = int(ca)


class TestApp(App):
    def __init__(self, **kwargs):
        super(TestApp, self).__init__(**kwargs)
        self.title = "kivy_buildozer"

if __name__ == "__main__":
    TestApp().run()
#:import hex_color kivy.utils.get_color_from_hex

TextWidget:

<TextWidget>:
    BoxLayout:
        orientation: "vertical"
        size: root.size

        Label:
            size_hint_y: 0.9
            id: label1
            font_size: 300
            text: str(root.number)

            canvas.before:
                Color:
                    rgba: hex_color("#606060")
                Rectangle:
                    pos: self.pos
                    size: self.size

        BoxLayout:
            size_hint_y: 0.1
            Button:
                id: button1
                text: "(0,1,2) * (1,2,3)"
                font_size: 40
                color: hex_color("#ffffff")
                background_color: hex_color("#f1d661")
                on_press: root.buttonClicked()

            Button:
                id: button2
                text: "(1,2,3) * (2,3,4)"
                font_size: 40
                color: hex_color("#ffffff")
                background_color: hex_color("#f1d661")
                on_press: root.buttonClicked2()

            Button:
                id: button3
                text: "(2,3,4) * (0,1,2)"
                font_size: 40
                color: hex_color("#ffffff")
                background_color: hex_color("#f1d661")
                on_press: root.buttonClicked3()

Когда я строю их с использованием buildozer android debug deploy run logcat, я получаю следующую ошибку;

Traceback (most recent call last):
  File "setup.py", line 12, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'

Несмотря на эту ошибку, у меня есть pkg_resources в пакетах сайта (как видно из последней версии setuptools == 41.0.1).Я могу успешно построить , удалив панд из buildozer.spec .Что мне делать с этой ошибкой?

...