我编写了一个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?
答案 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