gpt4 book ai didi

python - 为现有项目结构创建 setup.py

转载 作者:行者123 更新时间:2023-12-01 07:21:22 31 4
gpt4 key购买 nike

我开始开发一个具有以下文件夹结构的项目,其中每个顶级文件夹都位于单独的存储库中:

project-api/
source/
module1.py
module2.py
project-core/
source/
module3.py
module4.py

我想要pip install -e并能够执行以下操作:

from api.module1 import function1
from core.module3 import function3

不更改文件夹结构(由项目修复)。

问题:如何创建相应的setup.py

最佳答案

您无法使用 pip install -e 执行此操作,因为选项 -e 在开发/可编辑模式下“安装”软件包。它实际上并不安装任何东西,而是创建一个链接,允许 Python 直接从开发目录导入模块。不幸的是,在您的情况下,这是不可能的 - 目录 project-coreproject-api 在其名称中包含禁止字符 (-) - 这些目录不能就地导入。

但是pip install .可以从这些目录安装顶级包apicore。首先你必须添加__init__.py:

touch project-api/source/__init__.py
touch project-core/source/__init__.py

下面的setup.py完成剩下的工作:

#!/usr/bin/env python

from setuptools import setup

setup(
name='example',
version='0.0.1',
description='Example',
packages=['api', 'core'],
package_dir={
'api': 'project-api/source',
'core': 'project-core/source',
}
)

运行 pip install . 就完成了。在Python中执行import api, core

PS。如果您可以在根目录创建符号链接(symbolic link):

ln -s project-api/source api
ln -s project-core/source core

您可以使用pip install -e。

关于python - 为现有项目结构创建 setup.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57679287/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com