[英]Adding a shebang causes No such file or directory error when running my python script
[英]Adding local file to python search path when running a script in a different directory
我編寫了一個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並使其知道要在其中運行的方程式的.py?
獲取當前的工作目錄(運行腳本時所在的目錄)
import os
cwd = os.getcwd()
現在您可以使用importlib(在python 3中)使用完整路徑cwd/myfile.py
導入文件。 有關更多信息,請參見如何在給定完整路徑的情況下導入模塊?
附帶說明,在處理文件和文件系統時,我個人真的很喜歡使用此程序包: https : //github.com/gabrielfalcao/plant
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.