一个带有多个软件包的python项目

时间:2019-02-07 00:02:58

标签: python git package reusability

我正在从单个脚本转到更大的python应用程序。

这是一个具有多个软件包的应用程序。

package1-> package1 / .py文件

package2-> package2 / .py文件

由于包1应该可以单独使用,因此我将其保存在单独的git repo中。 我想在package2中做:导入package1

感觉最简单的方法是在project2的子目录中包含project1(在其git repo中),但这听起来不是一个很好的解决方案。

我发现有些答案过时了,无法解决。 (python setup.py install)

将package1位置添加到PATH是一个解决方案,但是如果我想将其分发给同事,那不是很好。理想情况下,我尽可能轻松地“安装”软件包。

我读“ pip”将是首选,但需要一些指导以开始寻找创建程序包的方向。而且,分发只能是本地的。

(python3.6。代码将在linux和Windows上使用。)

1 个答案:

答案 0 :(得分:0)

使用有问题的np8给出的点子摘录的出色答案(但有点隐藏)  Importing modules from parent folder: 检查他的答案!

-

1)将setup.py添加到根文件夹

setup.py的内容可以很简单

from setuptools import setup, find_packages

setup(name='myproject', version='1.0', packages=find_packages())

基本上,“任何” setup.py都可以使用。这只是一个最小的工作示例。

2)使用虚拟环境

3)pip以可编辑状态安装项目

使用myproject安装顶级软件包pip。诀窍是在安装时使用-e标志。这样,它以可编辑状态安装,并且对.py文件所做的所有编辑将自动包含在已安装的软件包中。

在根目录中运行

pip install -e .(注意点,它代表“当前目录”)

您还可以使用pip freeze

查看它是否已安装。