因此,我有一个结构如下所示的项目:
project
├── src
│ ├── api
│ │ ├── __init__.py
│ │ └── api.py
│ ├── instance
│ │ ├── __init__.py
│ │ └── config.py
│ ├── packages
│ │ ├── __init__.py
│ │ └── app.py
├── tests
│ └── __init__.py
├── requirements.txt
├── README.md
├── .gitignore
└── setup.py我正在尝试创建setup.py,以便从package/app.py调用instance/config.py。因此,我创建了以下setup.py
from distutils.core import setup
from setuptools import setup, find_packages
setup(
name='project',
version='0.1dev0',
author='Author name',
author_email='my_email',
packages=['api', 'instance', 'packages'],
long_description=open('README.md').read()
)但我得到以下错误:
...
warnings.warn(tmpl.format(**locals()))
package init file 'src\__init__.py' not found (or not a regular file)
error: package directory 'api' does not exist
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.因此,每当我尝试从packages/app.py调用instance/config.py时,都会得到以下错误:
from instance import config
ModuleNotFoundError: No module named 'instance'我需要对setup.py文件做些什么才能使它工作?项目的结构应该以某种方式改变吗?
提前谢谢你!
发布于 2020-04-21 06:14:09
简而言之,您必须在项目目录中创建一个根包project。有关更多详细信息,请参阅https://packaging.python.org/tutorials/packaging-projects/。然后
from project.instance import config将src重命名为project,并将__init__.py和imports放在其中
from . import api, instance, packageshttps://stackoverflow.com/questions/61332830
复制相似问题