首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确创建setup.py

正确创建setup.py
EN

Stack Overflow用户
提问于 2020-04-21 06:06:26
回答 1查看 118关注 0票数 1

因此,我有一个结构如下所示的项目:

代码语言:javascript
复制
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

代码语言:javascript
复制
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()
)

但我得到以下错误:

代码语言:javascript
复制
...
      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时,都会得到以下错误:

代码语言:javascript
复制
    from instance import config
ModuleNotFoundError: No module named 'instance'

我需要对setup.py文件做些什么才能使它工作?项目的结构应该以某种方式改变吗?

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-21 06:14:09

简而言之,您必须在项目目录中创建一个根包project。有关更多详细信息,请参阅https://packaging.python.org/tutorials/packaging-projects/。然后

代码语言:javascript
复制
from project.instance import config

src重命名为project,并将__init__.py和imports放在其中

代码语言:javascript
复制
from . import api, instance, packages
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61332830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档