微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

执行我的 setuptools console_script 时出现 ModuleNotFoundError

如何解决执行我的 setuptools console_script 时出现 ModuleNotFoundError

我知道有人问过很多类似的问题,但我觉得我已经尝试了所有方法,但总是遇到同样的错误。我关注了这篇文章 https://gehrcke.de/2014/02/distributing-a-python-command-line-application/,我想我也做了同样的事情。无论如何,这是我的项目结构:

nc-textmanager-tool/
├── nc_textmanager
│   ├── gui/
│   ├── textmanager/
│   ├── __init__.py
│   ├── __main__.py
│   └── nc_main.py
├── LICENSE
├── bundles.yaml
├── env.yaml
├── requirements.txt
├── README.rst
└── setup.py

这是setup.py

内容
import setuptools

with open("README.md","r",encoding="utf-8") as f:
    long_desc = f.read()

with open("requirements.txt",encoding="utf-8") as f:
    requirements = f.readlines()

setuptools.setup(
    name="nc-textmanager",version="1.1.11",author="XXX",author_email="XXX",description="A simple tool for viewing and searching through keys and values used by Textmanger in NC projects.",long_description=long_desc,long_description_content_type="text/markdown",packages=setuptools.find_packages(),entry_points={
        "console_scripts": ['nc_textmanager = nc_textmanager.nc_main:run']
    },url="???",classifiers=[
        "Programming Language :: Python :: 3","License :: OSI Approved :: MIT License","Operating System :: OS Independent",],python_requires='>=3.8',install_requires=requirements
)

通过运行 python .\setup.py install 安装它工作正常,但是当我尝试从控制台运行我的 nc_textmanager 脚本时,我收到此错误

> nc_textmanager
Traceback (most recent call last):
  File "C:\Users\SEHE\AppData\Local\Programs\Python\python39\Scripts\nc_textmanager-script.py",line 33,in <module>
    sys.exit(load_entry_point('nc-textmanager==1.1.11','console_scripts','nc_textmanager')())
  File "C:\Users\SEHE\AppData\Local\Programs\Python\python39\Scripts\nc_textmanager-script.py",line 25,in importlib_load_entry_point
    return next(matches).load()
  File "C:\Users\SEHE\AppData\Local\Programs\Python\python39\lib\importlib\Metadata.py",line 77,in load
    module = import_module(match.group('module'))
  File "C:\Users\SEHE\AppData\Local\Programs\Python\python39\lib\importlib\__init__.py",line 127,in import_module
    return _bootstrap._gcd_import(name[level:],package,level)
  File "<frozen importlib._bootstrap>",line 1030,in _gcd_import
  File "<frozen importlib._bootstrap>",line 1007,in _find_and_load
  File "<frozen importlib._bootstrap>",line 984,in _find_and_load_unlocked
ModuleNotFoundError: No module named 'nc_textmanager.nc_main'

我确实尝试将 nc_textmanager-script.py 文件放在我的项目根目录中并在那里执行,一切正常。因此,我认为工作目录存在问题...

在 Windows 10 上使用 python 3.8。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。