Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个包含多个包的python项目_Python_Git_Package_Reusability - Fatal编程技术网

一个包含多个包的python项目

一个包含多个包的python项目,python,git,package,reusability,Python,Git,Package,Reusability,我将从单一脚本转向更大的python应用程序 它是一个包含多个包的应用程序 package1->package1/.py文件 package2->package2/.py文件 由于包1应该能够单独使用,所以我将它保存在一个单独的git回购中。 我想用包装2:进口包装1 感觉最简单的方法是将project1(在其git repo中)放在project2的子目录中,但这听起来不是一个好的解决方案 我找到的一些答案感觉过时了,我无法使用。(python setup.py安装) 将package1位置添

我将从单一脚本转向更大的python应用程序

它是一个包含多个包的应用程序

package1->package1/.py文件

package2->package2/.py文件

由于包1应该能够单独使用,所以我将它保存在一个单独的git回购中。 我想用包装2:进口包装1

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

我找到的一些答案感觉过时了,我无法使用。(python setup.py安装)

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

我读到“pip”是首选,但需要一些指导,从哪里开始寻找创建包。此外,分发将仅限于本地

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

摘自np8给出的一个使用pip的优秀(但有点隐藏)答案 : 看看他的答案

--

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

在根目录中,运行

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

您还可以看到它是通过使用
pip freeze