【问题标题】:Why is this a "hacky" way to import sys?为什么这是导入 sys 的“hacky”方式?
【发布时间】:2023-02-20 20:57:54
【问题描述】:

我不是 Python 专家,但我正在管理一个 AWS-CDK 存储库,该存储库具有此导入以及大多数子文件夹类中的以下注释。

# Hacky way to get our utils - due to the way folder structure is right now
import sys

sys.path.append("..")
[...]

这个项目的文件夹结构是这样的:

- [...]
- app.py
- pipeline.py
- requirements.txt
- setup.py
- iam
  |- iam.py
- rds
  |- rds.py
- s3
  | - s3.py

import sys可以在iam/iam.pyrds/rds.pys3/s3.py中找到。

为什么导入是一种骇人听闻的方式,我怎样才能减少它的骇人听闻?

【问题讨论】:

  • 我认为问题是使用 sys.path.append 来确保未来的导入工作,而不是导入 sys 本身

标签: python python-import


【解决方案1】:

这不是导入 sys 的 hacky 方式;黑客是这些模块需要修改sys.path,这几乎总是一个坏主意,在添加时加倍相对路径sys.path(而不是解析父文件夹的绝对路径),以便能够“获取我们的实用程序”。

减少这种麻烦的方法是将东西正确打包到一个 Python 包中,不需要接触 sys.path 即可使其导入工作。

【讨论】:

猜你喜欢
  • 2016-12-23
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 2021-08-09
相关资源
最近更新 更多