我有以下结构:
utils_dir 有generator.py 文件,其中有3 个def。
我在 inline_dir 中有 test.py 。我正在尝试在 test.py 中使用生成器.py 中的 defs。
inline_dir 和 utils_dir 位于不同的文件夹中。
我怎样才能使用 defs 来实现它?
尝试创建_init_.py
然后打电话import generator
。 - 没有工作。
尝试过from utils import generator
- 没有工作
Dir structure
Support_dir
├── dir_A
│ ├── dir_aa
│ └──----- main.py [Want to use a and b from generator.py]
└── utils
|
└── generator.py
|
|___ def a
|___ def b
这是一种Python路径问题。当你导入时,python会搜索当前目录和默认系统路径目录。由于 utils_dir 不是您当前的工作目录(导入时,您在 inline_dir 中工作),也不是默认的 python 搜索系统路径,这就是导入不起作用的原因。
一个简单的解决方法是
A)。首先将 utils_dir 作为 python 包:只需添加init目录中的.py。
b).然后,将 utils_dir 的父文件夹路径添加到 PYTHONPATH 环境变量中。
export PYTHONPATH=/home/user/parent_of_utils_dir:$PYTHONPATH
您可以将此行添加到 .bashrc 中以使其始终可用。
C)。在你的 test.py 中,导入函数
from utils import generator
or
import utils.generator
更Python的开发方式是使用setuptools,编写python脚本setup.py,这样就可以解决依赖问题。然后你可以使用
python setup.py develop
在开发模式下使用。
查看更多 python 包开发指南:https://packaging.python.org/ https://packaging.python.org/
希望对你有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)