python - 如何从多个级别导入 python 文件?
问题描述
我的文件结构如下:
从deepxi/lib/dev/acoustic/feat/polar.py
,我想导入deepxi/lib/dev/acoustic/analysis_synthesis/polar.py
,我设法做到了:
import sys
sys.path.insert(0, '../..')
from ..analysis_synthesis import polar
但我也想包括deepxi/lib/dev/add_noise.py
. 我试过from add_noise import add_noise_batch
了,但没有用。有任何想法吗?
我没有能力做export PYTHONPATH=...
解决方案
如果您将项目的根目录添加为export PYTHONPATH='/path/to/deepxi'
然后打电话给polar你会做
from lib.dev.acoustic.analysis_synthesis import polar
打电话给add_noise_batch
你
from lib.dev import add_noise_batch
或者
export PYTHONPATH='/path/to/deepxi/lib'
并做:
from dev.acoustic.analysis_synthesis import polar
from dev import add_noise_batch
像这样你可以添加更多到你的PYTHONPATH
,但最好的做法是添加根文件夹(第一种方法),然后使用绝对路径到你所调用的任何内容。
此外,重命名,lib
因为这也是 Python 中的一个常见模块。总是给东西命名,这样它就不会与已经存在的模块重合。所以analysis_synth_lib
或不是的东西lib
笔记
您可以将多个路径添加到您的PYTHONPATH
,不建议,但您可以这样做!例如export PYTHONPATH='/path/to/deepxi:/path/to/deepxi/lib'
现在,每当您运行该功能时,它都会耗尽您的所有路径PYTHONPATH
以找到它正在寻找的东西!
推荐阅读
- php - 在 laravel php 中下订单后更新库存
- android - Android Studio XML文件中app:endIconCheckable的作用是什么?
- ios - UserDefaults 的所有操作系统键是什么?它们是什么意思?
- reactjs - next.js 与 nginx 不上传或显示来自公共文件夹的图像
- sql - 奇怪的字体记录异常
- cuda - NVIDIA-MPS中如何控制每个客户端的资源
- flutter - 如何使用带有 auto_route 的嵌套路由在 Flutter 中的屏幕之间导航
- ios - 解构@State SwiftUI
- java - 从字符串中提取双精度
- shell - Unix wget | # 在网址中 | 语法问题