我正在开发一个包含两个模块的python项目。模块是非常密切相关的,因此我希望它们在同一个git仓库中,并且能够在我的IDE中一起开发它们:
module1
取决于module2
module1
有很多其他重依赖关系,module2没有module1
和module2
将用于不同的运行时环境module2
应该可以单独安装,以便它可以在例如AWS Lambda 因此,我尝试设置一个项目结构,其中包含一个仓库中两个文件夹中的两个模块,每个文件夹都有setup.py
,因此可以打包。这是一种合理的方法吗?
\module1
setup.py
\module1
__init__.py
[scripts].py
\module2
setup.py
\module2
__init__.py
[scripts].py
上面的结构应该允许我在本地处理module2
作为常规模块的项目,但是setup.py
文件意味着它可以像它自己的包那样分发,对吧?
问题在于我无法在module2
module1
setup.py
中包含from setuptools import setup
setup(
name="module1",
version="0.1",
packages=['module1'], # I really need to include module2 scripts here, right?...
install_requires=['pandas', 'numpy', ...]
)
依赖关系:
module2
有没有人对如何解决这个问题有什么建议?我能猜到的两个解决方案是:
module1
的要求,打包并发布module2
之前的module1
。这使得开发更加难以理解packages
嵌套在setup(...)
中,以便将其包含在module1
函数的module2
参数中。这打破了prepare(for:sender:)
应该对待segue.destinationViewController
的清晰度,好像它本质上是一个外部依赖... 答案 0 :(得分:3)
将它们保存在同一存储库中的主要原因是在IDE中的两个模块上启用并行工作。我建议将模块保存在单独的存储库中,并使用pip
模式setuptools
或editable模式进行module2
以实现“并行”开发。
基本上,当您在develop/editable
中使用module1
时,您将以module2
模式安装module1
。此后,您会在开发pip install git+<git_directory>
git
所做的所有更改
执行相同操作还可确保dplyr
之类的内容不会中断,您可以直接从Bout
安装