gpt4 book ai didi

python本地模块

转载 作者:太空狗 更新时间:2023-10-29 22:11:50 24 4
gpt4 key购买 nike

我有几个项目目录,并希望拥有特定于它们的库/模块。例如,我可能有这样的目录结构:

myproject/
mymodules/
__init__.py
myfunctions.py
myreports/
mycode.py

假设 myfunctions.py 中有一个名为 add 的函数,我可以使用最简单的例程从 mycode.py 中调用它:

execfile('../mymodules/myfunctions.py')
add(1,2)

但是为了更复杂,我也可以这样做

import sys
sys.path.append('../mymodules')
import myfunctions

myfunctions.add(1,2)

这是最惯用的方法吗?还有一些关于修改 PYTHONPATH (os.environ['PYTHONPATH']?) 的提及,但我应该研究这个还是其他事情?

此外,我还看到 import 语句包含在类语句中,在其他情况下,定义在包含类定义的 Python 文件的顶部。是否有正确/首选的方法来执行此操作?

最佳答案

除非有充分的理由,否则不要乱用 execfilesys.path.append。相反,只需将您的代码安排到 proper python packages 中即可。并像导入任何其他库一样进行导入。

如果您的 mymodules 实际上是一个大型项目的一部分,那么请像这样设置您的包:

myproject/
__init__.py
mymodules/
__init__.py
myfunctions.py
myreports/
__init__.py
myreportscode.py

然后您可以像这样从代码中的任何位置导入 mymodules:

from myproject.mymodules import myfunctions
myfunctions.add(1, 2)

如果您的 mymodules 代码被许多独立且不同的项目使用,那么只需将其单独打包并安装到需要使用它的任何环境中。

关于python本地模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732685/

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