gpt4 book ai didi

python - 如何让两个脚本引用同一个模块

转载 作者:行者123 更新时间:2023-11-30 23:11:48 24 4
gpt4 key购买 nike

我正在编写两个旨在从命令行运行的脚本。我们将它们命名为 foo.pybar.py。此外,我有一个名为 util 的实用程序模块,它将由这两个脚本共享。如何构建我的代码,以便 foobar 都可以有像 import util 这样的简单行?目前,我的目录结构是这样的:

MyProject
\--foo
\--foo.py
\--foo_util.py
\--bar
\--bar.py
\--bar_util.py
\--util
\--util.py

foo中,我希望能够编写import foo_utilimport util,但我不希望能够编写import bar,因为它们是独立的程序,没有理由使用彼此的代码。

更新:切普纳解决方案的稍微修改版本,我发现了一些似乎对我有用的东西。我的项目现在的结构如下:

MyProject
\--__init__.py
\--foo.py
\--bar.py
\--MyProject
\--__init__.py
\--foo
\--__init__.py
\--foo_impl.py
\--bar
\--__init__.py
\--bar_impl.py
\--shared
\--__init__.py
\--util.py

foo.py 可以编写 import MyProject.foo as foobar.py 可以做类似的事情,并且 foo bar 可以做 import MyProject.shared

最佳答案

我建议使用以下布局:foo.pybar.py 作为脚本,可以放置在任何地方。您应该在已知位置安装以下软件包:

<known location, such as /usr/lib/python/site-packages>
\--foo
\--util.py
\--bar
\--util.py
\--util.py

然后,在必要时使用 import foo.utilimport bar.utilimport util 访问各个模块。

正如 abarnert 指出的那样,您无法从 foo 中隐藏 bar/util.py,也不应该关心这样做。

关于python - 如何让两个脚本引用同一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30062101/

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