一个 python 个项目包含多个包
one python project with multiple packages
我正在从单一脚本转向更大的 python 应用程序。
这是一个包含多个包的应用程序。
package1-> package1/.py 文件
package2-> package2/.py 文件
由于包 1 应该可以单独使用,所以我将其保存在单独的 git 存储库中。
我想在 package2 中做: import package1
感觉最简单的方法是将 project1(在其 git 存储库中)放在 project2 的子目录中,但这听起来不是一个好的解决方案。
我发现的一些答案感觉过时了,我无法让它发挥作用。 (python setup.py 安装)
将 package1 位置添加到 PATH 是一个解决方案,但如果我想将它分发给同事,这不是很好。理想情况下,我 "install" 尽可能轻松地打包。
我读到 "pip" 是首选,但需要一些说明从哪里开始寻找创建包。此外,分发只会在本地进行。
(python3.6。代码将用于linux和windows。)
摘自有问题的 np8 给出的使用 pip 的优秀(但有点隐藏)答案
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())
基本上"any"setup.py就可以了。这只是一个最小的工作示例。
2) 使用虚拟环境
3) pip install 您的项目处于可编辑状态
使用 pip
安装顶级包 myproject
。诀窍是在安装时使用 -e
标志。这样它就以可编辑的状态安装,对.py文件所做的所有编辑都会自动包含在安装包中。
在根目录下,运行
pip install -e .
(注意点,它代表 "current directory")
也可以看到使用pip freeze
安装
我正在从单一脚本转向更大的 python 应用程序。
这是一个包含多个包的应用程序。
package1-> package1/.py 文件
package2-> package2/.py 文件
由于包 1 应该可以单独使用,所以我将其保存在单独的 git 存储库中。 我想在 package2 中做: import package1
感觉最简单的方法是将 project1(在其 git 存储库中)放在 project2 的子目录中,但这听起来不是一个好的解决方案。
我发现的一些答案感觉过时了,我无法让它发挥作用。 (python setup.py 安装)
将 package1 位置添加到 PATH 是一个解决方案,但如果我想将它分发给同事,这不是很好。理想情况下,我 "install" 尽可能轻松地打包。
我读到 "pip" 是首选,但需要一些说明从哪里开始寻找创建包。此外,分发只会在本地进行。
(python3.6。代码将用于linux和windows。)
摘自有问题的 np8 给出的使用 pip 的优秀(但有点隐藏)答案 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())
基本上"any"setup.py就可以了。这只是一个最小的工作示例。
2) 使用虚拟环境
3) pip install 您的项目处于可编辑状态
使用 pip
安装顶级包 myproject
。诀窍是在安装时使用 -e
标志。这样它就以可编辑的状态安装,对.py文件所做的所有编辑都会自动包含在安装包中。
在根目录下,运行
pip install -e .
(注意点,它代表 "current directory")
也可以看到使用pip freeze
安装