【发布时间】:2013-12-19 23:28:29
【问题描述】:
我正在尝试创建一个 github 存储库,该存储库可以从任何克隆运行而无需硬编码目录依赖项。
让我们在我的仓库中说我有一个名为 myscript.py 的 python 脚本,它位于:
/d/e/f/github/myrepo/myscript/myscript.py
但我知道我的脚本依赖于通常位于以下位置的实用工具:
/d/e/f/github/myrepo/myutils/myutils.py
因此,我如何告诉我的脚本始终加载 myutils.py,其中 myutils.py 相对于 myscript.py 的相对路径始终是 ../myutils/myutils.py
截至目前 myscript.py 看起来像:
# Import modules
import sys
sys.path.append('/d/e/f/github/myrepo/myutils/')
import myutils
现在可以看到 myutils.py 的完整路径是硬编码的,所以如果其他人在自己的计算机上克隆他们的 repo,它将无法工作。
理想情况下,用户应该能够按如下方式运行 myscript.py:
cd /d/e/f/github/myrepo/myscript/
python myscript.py -h
或者,
python /d/e/f/github/myrepo/myscript/myscript.py -h
它应该可以工作,而不必硬编码 myutils 模块的完整路径,而只是相对路径......
【问题讨论】: