【发布时间】:2017-04-13 18:56:32
【问题描述】:
我编写了一个 python 脚本“Script.py”,当我将它复制到我想要运行它的目录中时它可以工作。我经常运行这个脚本,所以我想将它添加到 .bashrc 所以我不必须将它复制到我需要运行它的每个目录中。
所以脚本在目录中:
/home/pythonscripts/Script.py
现在我想在目录中运行这个脚本:
/home/Documents/Test1/
部分脚本正在导入不同的文件(这对于每个测试用例都是唯一的)。这个文件的位置是:
/home/Documents/Test1/equations.py
如果我从“Test1”目录开始并运行“Script.py”,我会收到以下错误:
File "/home/python/Script.py", line 115, in <module>
import equations
ImportError: No module named 'equations'
如果我将脚本放入运行它的目录 (/home/Documents/Test1/),则不会出现错误。我认为脚本正在“/home/python”目录中查找 equations.py 文件,而不是我运行脚本的本地文件。
我的问题是我如何告诉脚本以一般方式在本地目录中查找 equations.py 文件,以便我可以从任何目录运行 Script.py 并让它知道在它正在运行的目录中查找在 for equations.py 中?
【问题讨论】:
-
您可以
import sys并将所需路径附加到sys.path,或进行相对导入 -
就是这样,我不知道如何将我所在的目录添加到 sys.path 如果我添加了我所在的目录,我可以做到这一点。但是它当我决定在下一个目录中运行脚本时,这还不够通用。
-
你可以
import os试试dir_path = os.path.dirname(os.path.realpath(__file__))或cwd = os.getcwd() -
太棒了,非常感谢。成功了!