ModuleNotFoundError при запуске скрипта python, установленного через deb, созданный с использованием stdeb - PullRequest
0 голосов
/ 23 апреля 2020

Я собрал действительно простой Python проект, который я упаковываю в файл .deb для установки. У меня работает сборка .deb, но когда я запускаю свой скрипт с помощью его команды, я получаю ModuleNotFoundError.

Моя структура проекта выглядит следующим образом:

setup.py
hello
  |
  | - __init.py__
  | - hello.py
  | - world.py

setup.py

import os
from setuptools import setup, find_packages
setup(
    name = "hello_py",
    version = "1.3",
    author = "Sion Hughes",
    author_email = "",
    description = "It's a simple hello world, but this time with 2 python file",
    license = "",
    url = " ",
    packages=find_packages(),
    entry_points = {
        'console_scripts' : ['hello = hello.hello:main',
        'command-name = hello.hello:main']
    },
    classifiers=[
        "License :: OSI Approved :: BSD License",
    ],
)

hello.py

#!/usr/bin/env python3
import world

def main():
    print("Hello, this is Siôn's python script")
    world.hello()

if __name__ == "__main__":
    main()

world.py

#!/usr/bin/env python3

def hello():
    print("Hello from another Python file")

Все работает локально, но когда я запускаю команду hello, я получаю следующую ошибку:

# hello
Traceback (most recent call last):
  File "/usr/bin/hello", line 11, in <module>
    load_entry_point('hello-py==1.3', 'console_scripts', 'hello')()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2854, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2445, in load
    return self.resolve()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2451, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/hello/hello.py", line 5, in <module>
    import world
ModuleNotFoundError: No module named 'world'

Где я ошибаюсь, чтобы это работало? Заранее спасибо.

Обновление: забыл сказать в первоначальном посте, я хочу иметь возможность запускать скрипты в их локальном каталоге и в целях разработки, а не только запускаться через установленный .deb

1 Ответ

0 голосов
/ 23 апреля 2020

Вместо import world в hello.py, попробуйте использовать import .world.

...