【问题标题】:What is the best practice for importing modules: absolute paths or relative paths?导入模块的最佳实践是什么:绝对路径还是相对路径?
【发布时间】:2014-11-06 13:05:43
【问题描述】:

所以我正在做一个项目,我将其他 Python 模块的所有路径都定义为绝对路径:

import sys
sys.path.append('/home/user123/my_project/utilities')
import file_utilities

但后来我将项目移到了另一个文件夹,这破坏了一切。我必须手动编辑所有路径以说明文件夹更改。

我最初使用绝对路径是不是一个糟糕的选择?我最初避免使用相对路径,因为我认为它会很快变得丑陋:

import sys
sys.path.append('../../../../utilities')
import file_utilities

最佳做法是什么?

【问题讨论】:

  • 最好的做法是不要过多地使用sys.path
  • 使用 virtualenv 将您的代码和依赖项收集在一起,这将确保您的 sys.path 是正确的。
  • @MartijnPieters 在这个例子中你将如何导入file_utilities
  • @usualme:我会使用虚拟环境或扩展来将file_utilities 包含在离家更近的地方。

标签: python python-2.7 python-import


【解决方案1】:

一个方便的解决方案是将基本路径“移动”,即 basepath = "/home/user123/" 到变量中并将路径寻址为

sys.path.append('{}/my_project/utilities'.format(basepath))

那会丑陋的相对符号并给你灵活性。

【讨论】:

  • 不过,您应该使用 os.path.join() 而不是格式化。
猜你喜欢
  • 2015-11-13
  • 2019-09-09
  • 2011-11-25
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 2018-09-17
  • 2014-09-22
  • 2014-03-09
相关资源
最近更新 更多