适当的 setup.py 创作
Proper setup.py creation
所以我有一个结构如下所示的项目:
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
文件做什么才能使其正常工作?是否应该以某种方式改变项目的结构?
非常感谢!
简而言之,您必须在项目目录中创建一个根包 project
。有关详细信息,请参阅 https://packaging.python.org/tutorials/packaging-projects/。那么
from project.instance import config
将 src
重命名为 project
并用 imports
放在那里 __init__.py
from . import api, instance, packages
所以我有一个结构如下所示的项目:
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
文件做什么才能使其正常工作?是否应该以某种方式改变项目的结构?
非常感谢!
简而言之,您必须在项目目录中创建一个根包 project
。有关详细信息,请参阅 https://packaging.python.org/tutorials/packaging-projects/。那么
from project.instance import config
将 src
重命名为 project
并用 imports
__init__.py
from . import api, instance, packages