【问题标题】:one python project with multiple packages一个包含多个包的 python 项目
【发布时间】:2019-07-01 01:04:42
【问题描述】:

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

这是一个包含多个包的应用程序。

package1-> package1/.py 文件

package2-> package2/.py 文件

由于包 1 应该可以单独使用,所以我将它保存在一个单独的 git repo 中。 我喜欢在 package2 中做:import package1

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

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

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

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

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

【问题讨论】:

    标签: python git package reusability


    【解决方案1】:

    使用问题中 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())
    

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

    2) 使用虚拟环境

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

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

    在根目录下,运行

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

    使用pip freeze也可以看到安装了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2016-07-15
      相关资源
      最近更新 更多