使用 setup.py 从 pip 安装后出现 ModuleNotFoundError
ModuleNotFoundError after installing from pip with setup.py
我的工作目录树结构:
├── 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 安装时,即 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。
您正在从名为 spotidnldr
的工作场所之外的 setup.py
调用方法。
setup.py
将包含在您的根目录中。所以你必须使用
from spotidnldr.env_setup import *
希望对您有所帮助。
我的工作目录树结构:
├── 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 安装时,即 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。
您正在从名为 spotidnldr
的工作场所之外的 setup.py
调用方法。
setup.py
将包含在您的根目录中。所以你必须使用
from spotidnldr.env_setup import *
希望对您有所帮助。