gpt4 book ai didi

python - 解释 Python 的站点包。我要把我的图书馆放在那里吗?

转载 作者:太空狗 更新时间:2023-10-30 02:34:32 25 4
gpt4 key购买 nike

我最近遇到了一个以 Python 作为代码库的新项目。我以前从未用过 Python——来自编译代码的 C/C++ 世界。我在理解我当前的代码库时遇到了一些问题。

当我们编写代码时,我们有我们的库(比其他代码更通用的组件)和我们的应用程序代码(应用库的代码),对吧?在我之前从事的项目中,我会将我的库代码和应用程​​序都保存在一个项目文件夹中的包含文件夹中。在 C/C++ 领域,将有一个 makefile(或某些 make 系统)将所有内容 Hook 在一起,以便包含的所有内容都能正常工作。

    Project/
Library/
Utilities.cpp
Application/
Main.cpp
makefile

我现在正在进行的项目在 site-packages 文件夹中有它自己的 库,它本身位于 IronPython/Python 系统文件夹中。该库代码是我们的,并且仍然“热门”并且正在处理中。应用程序代码位于系统的其他位置。

这似乎是一个糟糕的设计,但我的同事坚持认为这“正是 Python 的工作方式”。 Python 支持包含/导入。一切不应该都是独立的吗?像这样分散代码似乎很奇怪。

谢谢!

最佳答案

Python 库通常通过 distutils 安装或 setuptools .这些实用程序将库安装在 python 的 site-packages 文件夹中,这是 python 知道在遇到 import x 语句时查找库的地方。

直接在 site-packages 文件夹中开发代码似乎有点奇怪,尽管从技术上讲这没有任何问题。通常,你会有这样的东西:

./app1.py
./lib1/__init__.py
./lib1/lib1.py
./lib2/__init__.py
./lib2/lib2.py
...etc

然后当您准备好打包库时,您可以使用上面提到的实用程序之一来执行此操作(然后将库安装到 site-packages 中)。

因此,回答您的问题:没有硬性规定。我认为大多数 Python 开发人员都不赞成直接在 site-packages 中进行开发。

*Setuptools 还有一个名为 develop 的命令,它会在 site-packages 中安装一个指向您的开发库的链接。我用过几次,效果很好。

关于python - 解释 Python 的站点包。我要把我的图书馆放在那里吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com