导入与当前脚本相关的共享python脚本的最简单方法

2024-05-11 08:36:24 发布

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

我试图从另一个python脚本导入一个。我在一个脚本中定义了一些常用函数,然后还有许多其他脚本希望导入这些函数。没有类,只有函数。在

导入脚本需要从相对路径导入,例如../../SharedScripts/python/common.py

然后我定义了几个函数def f1(...),我将调用这些函数。在

我找到了imp模块,它似乎是正确使用的东西,但我无法找出确切的语法,这将适用于我的例子。在

如果imp不是正确的模块,有人能建议使用正确的代码或最简单的方法吗?在

解决方案从下面的答案中,我能够使这个工作。。。在

projectKey = 'THOR'

# load the shared script relative to this script
sys.path.append(os.path.dirname(__file__) + '/../../SharedScripts/python')
import jira

jira.CheckJiraCommitMessage(sys.argv[1], sys.argv[2], projectKey)

在这里,我在SharedScripts/python目录中有一个空的__init__.py和一个jira.py,其中包含纯函数定义。在


Tags: 模块path函数py脚本定义defsys
2条回答

一种可能的方法是在导入之前将目录添加到Python路径中。在

#!/usr/bin/env python
import sys
sys.path.append('../../SharedScripts/python')
import common

为什么不在python路径中添加../../SharedScripts/python/?然后您可以像任何其他模块一样使用common.py

import common
common.f1()

您可以通过系统变量PYTHONPATH或直接从Python操作它来交替Python路径:sys.path.append("../../SharedScripts/python/")

请注意,使用绝对路径可能更明智。。。(应用程序的当前目录可能会更改)

要获得绝对路径,可以调用函数os.path.abspath:os.path.abspath('../../SharedScripts/python/')

相关问题 更多 >