我正在从单个脚本转到更大的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上使用。)
答案 0 :(得分:0)
使用有问题的np8给出的点子摘录的出色答案(但有点隐藏) Importing modules from parent folder: 检查他的答案!
-
setup.py
的内容可以很简单
from setuptools import setup, find_packages
setup(name='myproject', version='1.0', packages=find_packages())
基本上,“任何” setup.py都可以使用。这只是一个最小的工作示例。
使用myproject
安装顶级软件包pip
。诀窍是在安装时使用-e
标志。这样,它以可编辑状态安装,并且对.py文件所做的所有编辑将自动包含在已安装的软件包中。
在根目录中运行
pip install -e .
(注意点,它代表“当前目录”)
您还可以使用pip freeze