在不同目录中运行脚本时,将本地文件添加到python搜索路径

时间:2017-04-13 18:56:32

标签: python bash sys.path

我编写了一个python脚本“Script.py”,当我将其复制到我想要运行它的目录中时,它会起作用。我经常运行这个脚本,所以我想把它添加到.bashrc所以我不这样做必须将其复制到我需要运行它的每个目录中。

所以脚本在目录中:

/home/Documents/Test1/

现在我想在目录中运行此脚本:

/home/Documents/Test1/equations.py

脚本的一部分是导入另一个文件(这对每个测试用例都是唯一的)。该文件的位置是:

 File "/home/python/Script.py", line 115, in <module>
     import equations
 ImportError: No module named 'equations'

如果我从“Test1”目录开始并运行“Script.py”,我会收到以下错误:

  <rewrite>
  <rules>
    <rule name="HttpToHttps" enabled="true" stopProcessing="true">
      <match url="(http://)?([^/]+)(/.*)?" ignoreCase="true" />
      <conditions>
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}{PATH_INFO}?{QUERY_STRING}" appendQueryString="false" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

如果我将脚本放在我正在运行它的目录(/ home / Documents / Test1 /)中,则没有错误。我想的是脚本正在“/ home / python”目录中查找Equations.py文件,而不是我正在运行脚本的本地文件。

我的问题是我如何告诉脚本以一般方式查看Equations.py文件的本地目录,以便我可以从任何目录运行Script.py并让它知道它正在运行的那个目录in for equations.py?

1 个答案:

答案 0 :(得分:0)

获取当前工作目录(运行脚本时所在的目录)

import os
cwd = os.getcwd()

现在您可以使用importlib(在python 3中)使用完整路径cwd/myfile.py导入文件。有关详细信息,请参阅How to import a module given the full path?

作为旁注,在处理文件和文件系统时,我个人非常喜欢使用这个包: https://github.com/gabrielfalcao/plant