系统路径追加与正在运行的脚本的路径相关的模块

2024-05-29 03:39:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个github存储库,它可以从任何克隆运行,而无需硬编码目录依赖项。在

假设在我的repo中有一个名为myscript.py位于:

/d/e/f/github/myrepo/myscript/myscript.py

但我知道我的脚本依赖于通常位于以下位置的通用工具:

^{pr2}$

因此,如何让脚本始终加载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是硬编码的,所以如果其他人在自己的计算机上克隆他们的回购协议,那就行不通了。在

理想情况下,用户应该能够运行myscript.py具体如下:

cd /d/e/f/github/myrepo/myscript/
python myscript.py -h

或者

python /d/e/f/github/myrepo/myscript/myscript.py -h

它应该可以工作而不必硬编码到myutils模块的完整路径,而只是相对路径。。。在


Tags: 工具pyimport路径github目录脚本编码
1条回答
网友
1楼 · 发布于 2024-05-29 03:39:12

通过做一些研究,这似乎是一个可能的答案:

# Import modules
import subprocess, sys, os
script_path = os.path.dirname(__file__)
myutils_path = os.path.join(script_path, '../myutils')
sys.path.append(myutils_path)
import myutils

相关问题 更多 >

    热门问题