Python 3.7.3 Setup.py包中的ModuleNotFoundError

Python 3.7.3 Setup.py包中的ModuleNotFoundError,python,anaconda,setuptools,modulenotfounderror,Python,Anaconda,Setuptools,Modulenotfounderror,我有一个Python包,格式如下: mypackage ├── README.md ├── doc │   └── README.md ├── examples │   └── README.md ├── setup.py └── src ├── __init__.py ├── core │   ├── __init__.py │   └── main.py └── test └── README.md 它附带一个setup.py文件:

我有一个Python包,格式如下:

mypackage
├── README.md
├── doc
│   └── README.md
├── examples
│   └── README.md
├── setup.py
└── src
    ├── __init__.py
    ├── core
    │   ├── __init__.py
    │   └── main.py
    └── test
        └── README.md
它附带一个setup.py文件:

import os
from setuptools import setup, find_packages


def read(fname):
    """
    Reads the README functions are prints them into the long_description in
    the setup routine.

    Parameters
    ----------
    fname : README file name

    Returns
    -------
    Rendered README

    """
    return open(os.path.join(os.path.dirname(__file__), fname)).read()


classifiers = [
    "Development Status :: 3 - Alpha",
    "Intended Audience :: Developers",
    "Programming Language :: Python",
]

def run_setup():
    """
    This functions holds the setup command. Rather than running setup directly,
    it is wrapped in a 'try-except' that will print out errors if they occur.
    """
    setup(
        name='My Package',
        version='0.1',
        description='My package',
        long_description=read('README.md'),
        long_description_content_type='text/markdown',
        classifiers=classifiers,
        packages=['src', 'src.core'],
        python_requires='>=2.7.9',
        entry_points="""
        [console_scripts]
        my_package = src.core.main:main
        """,
    )


try:
    run_setup()
except SystemExit as e:
    print(e)
当我运行
python setup.py develope
pip install-e.
时,软件包说它安装成功。但是,当我运行
我的_程序包
时,会出现以下错误:

Traceback (most recent call last):
  File "/Users/mm/opt/anaconda3/bin/my_package", line 33, in <module>
    sys.exit(load_entry_point('My-Package', 'console_scripts', 'my_package')())
  File "/Users/mm/opt/anaconda3/bin/my_package", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/Users/mm/opt/anaconda3/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 105, in load
    module = import_module(match.group('module'))
  File "/Users/mm/opt/anaconda3/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'src.core'
回溯(最近一次呼叫最后一次):
文件“/Users/mm/opt/anaconda3/bin/my_package”,第33行,在
系统退出(加载入口点('My-Package','console\u scripts','My\u Package')())
文件“/Users/mm/opt/anaconda3/bin/my_package”,第25行,在importlib_load_入口点
返回下一个(匹配项)。加载()
文件“/Users/mm/opt/anaconda3/lib/python3.7/site packages/importlib_metadata/_init__u;.py”,第105行,已加载
模块=导入模块(match.group('module'))
文件“/Users/mm/opt/anaconda3/lib/python3.7/importlib/_init__.py”,第127行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1006行,在\u gcd\u导入中
文件“”,第983行,在_find_和_load中
文件“”,第953行,在“查找”和“加载”中解锁
文件“”,第219行,在“调用”中,删除了“帧”
文件“”,第1006行,在\u gcd\u导入中
文件“”,第983行,在_find_和_load中
文件“”,第965行,在“查找”和“加载”中解锁
ModuleNotFoundError:没有名为'src.core'的模块

我在适当的地方有
\uuuu init\uuuu.py
文件。我尝试过使用
setuptools
'显式
查找包
例程。我做错了什么?

这里有两件事你可以检查一下。通常情况下,在执行检查1之后,控制台脚本开始工作。如果没有,请尝试检查2,看看它是否能为您指出问题所在

检查1:正确的python可执行文件和pip组合 有时,普通的
pip安装
使用错误的
python
可执行文件进行安装。尝试使用与运行脚本时相同的
python
可执行文件强制安装

python -m pip install -e .
更确切地说,您可以检查python可执行文件路径,并直接使用它来代替
python

python -c "import sys; print(sys.executable)"
检查2:代码在没有控制台脚本的情况下运行 然后,检查是否可以直接运行脚本。如果未在
src/core/main.py中,请添加

if __name__ == '__main__':
    main()
然后,尝试使用直接运行脚本

python src/core/main.py

您能否确认您的
站点包
文件夹中有一个名为
src
的包?您也可以运行
pip list
进行验证。我相信它安装的包是正确的,但是在
src
名称下-只是想验证一下。Kacper,我没有看到,但我确实看到了我的包。你能粘贴
python-c“import sys;print(sys.executable)”
的输出,告诉我如何调用
我的包
(当它给出错误时)输出:
/Users/mm/opt/anaconda3/bin/python
使用
setup.py
编写,我试图调用它创建的系统可执行文件。也就是说,如果运行位于
/Users/mm/opt/anaconda3/
中的
myu包
,可能会发生什么?我有windows,文件夹名为
/Scripts/
。检查1:无更改。检查2:它直接运行。