ModuleNotFoundError после установки из pip с помощью setup.py - PullRequest
0 голосов
/ 29 апреля 2020

Моя рабочая структура дерева каталогов:

├── LICENSE
├── MANIFEST.in
├── README.md
├── setup.py
└── spotidnldr
    ├── MANIFEST.in
    ├── README.md
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-38.pyc
    │   ├── converter.cpython-38.pyc
    │   ├── cover_download.cpython-38.pyc
    │   ├── downloader.cpython-38.pyc
    │   ├── env_checker.cpython-38.pyc
    │   ├── env_setup.cpython-38.pyc
    │   ├── spot.cpython-38.pyc
    │   ├── tag_embedder.cpython-38.pyc
    │   └── youtube_search.cpython-38.pyc
    ├── clifi.py
    ├── converter.py
    ├── cover_download.py
    ├── downloader.py
    ├── env_checker.py
    ├── env_setup.py
    ├── requirements.txt
    ├── spot.py
    ├── tag_embedder.py
    ├── termux_setup.sh
    ├── web.py
    └── youtube_search.py

теперь, когда я устанавливаю с помощью setup.py ie pip install . Программа успешно устанавливается, но проблема заключается в том, что я запускаю команду, указанную в сценарии консоли в setup.py он выдает ModuleNotFoundError. Мой setup.py выглядит следующим образом

import setuptools

with open("README.md", 'r+') as f:
    print("opened")
    long_de = f.read()


setuptools.setup(
    name="spotidnldr", # Replace with your own username
    version="0.1b1",
    author="Rohit Patil",
    author_email="rahulhimesh09@gmail.com",
    description="the spotify song downloader",
    long_description = long_de,
    long_description_content_type="text/markdown",
    url="https://github.com/raprocks/spotindnldr",
    packages=["spotidnldr",],
    install_requires=[
        "spotipy",
        "youtube-dl",
        "eyeD3",
        "requests",
        "click",
        "ffmpeg-python",
    ],
    classifiers=[
        "Natural Language :: English",
        "Programming Language :: Python :: 3 :: Only",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    entry_points='''
        [console_scripts]
        spoti=spotidnldr.clifi:download
    ''',
    python_requires='>=3.8',
    include_package_data=True,
)

ошибка после запуска споти в терминале

$ spoti
Traceback (most recent call last):
  File "/data/data/com.termux/files/usr/bin/spoti", line 5, in <module>
    from spotidnldr.clifi import download
  File "/data/data/com.termux/files/usr/lib/python3.8/site-packages/spotidnldr/clifi.py", line 2, in <module>
    from env_setup import *
ModuleNotFoundError: No module named 'env_setup'

Пожалуйста, помогите мне решить эту проблему. Если это поможет, я использую модуль click python, чтобы превратить мое приложение в cli.

1 Ответ

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

вы вызываете методы из setup.py, который находится за пределами вашего рабочего места с именем spotidnldr. setup.py будет включен в ваш каталог root. Поэтому вы должны использовать

from spotidnldr.env_setup import *

Надеюсь, это поможет.

...