告诉特定目录(包)中的模块要求
Tell the module requirements in a particular directory (package)
在我的办公室,我们的代码目录结构非常复杂。
我们拥有的东西之一是一个 libs
模块,用于删除 "common" 我们大型应用程序(或一组应用程序......)的其他部分使用的东西......它们都生活在一个共同的目录)。
libs/
目录中的代码需要安装某些软件包才能运行。在所述 libs/
目录中,我们有一个 requirements.txt
文件,该文件 应该 列出其中的事物(事物是 Python 代码)工作所需的依赖项.我们一直在 手动 漂亮地填充 requirements.txt
文件,跟踪“如果这个 .py 文件使用这个模块,我们应该将它添加到需求文件中" 所以几乎可以肯定,到目前为止我们已经忘记了添加一些必需的模块。
因为我们的结构很复杂(有些部分使用 pipenv
,其他部分有自己的 requirements.txt
...)很难知道所需的模块是否最终会安装与否。
所以我想确保这个 libs/
目录(咳咳... module )在其 [=18= 中列出了所有依赖项].
这可能吗?理想情况下是 "run this command passing /libs/
as an argument, it'll scan the directory and tell you what packages are needed by the py(s) found in it"
提前谢谢你。
不幸的是,python直到运行时才知道它的依赖关系是否得到满足。 requirements.txt
只是pip等工具的辅助文件,需要手动更新
也就是说,你可以
- 使用
os
模块递归获取文件夹中所有*.py
个文件的列表
- 解析每行格式为
import aaa.bbb
或 from aaa import bbb
- 保留一组导入
然而,即使在那种情况下,导入模块的名称与您需要传递给 pip 的名称不相同(例如,import yaml
需要pyyaml
in requirements.txt
), 但至少它可以提示缺少什么。
在我的办公室,我们的代码目录结构非常复杂。
我们拥有的东西之一是一个 libs
模块,用于删除 "common" 我们大型应用程序(或一组应用程序......)的其他部分使用的东西......它们都生活在一个共同的目录)。
libs/
目录中的代码需要安装某些软件包才能运行。在所述 libs/
目录中,我们有一个 requirements.txt
文件,该文件 应该 列出其中的事物(事物是 Python 代码)工作所需的依赖项.我们一直在 手动 漂亮地填充 requirements.txt
文件,跟踪“如果这个 .py 文件使用这个模块,我们应该将它添加到需求文件中" 所以几乎可以肯定,到目前为止我们已经忘记了添加一些必需的模块。
因为我们的结构很复杂(有些部分使用 pipenv
,其他部分有自己的 requirements.txt
...)很难知道所需的模块是否最终会安装与否。
所以我想确保这个 libs/
目录(咳咳... module )在其 [=18= 中列出了所有依赖项].
这可能吗?理想情况下是 "run this command passing /libs/
as an argument, it'll scan the directory and tell you what packages are needed by the py(s) found in it"
提前谢谢你。
不幸的是,python直到运行时才知道它的依赖关系是否得到满足。 requirements.txt
只是pip等工具的辅助文件,需要手动更新
也就是说,你可以
- 使用
os
模块递归获取文件夹中所有*.py
个文件的列表 - 解析每行格式为
import aaa.bbb
或from aaa import bbb
- 保留一组导入
然而,即使在那种情况下,导入模块的名称与您需要传递给 pip 的名称不相同(例如,import yaml
需要pyyaml
in requirements.txt
), 但至少它可以提示缺少什么。