使用从其他脚本导入函数的.bat运行python脚本
我正在尝试运行python脚本。该脚本从其他脚本导入函数,在IDE(Spyder)中运行时效果良好,但是当我运行.bat时,会出现无法导入模块的错误 bat先生的发言如下使用从其他脚本导入函数的.bat运行python脚本,python,batch-file,Python,Batch File,我正在尝试运行python脚本。该脚本从其他脚本导入函数,在IDE(Spyder)中运行时效果良好,但是当我运行.bat时,会出现无法导入模块的错误 bat先生的发言如下 "D:\Users\User\AppData\Local\Programs\Python\Python38-32\python.exe" "D:\Users\User\Documents\programming\test.py" 我得到以下错误 回溯(最近一次呼叫最后一次): 文件“D
"D:\Users\User\AppData\Local\Programs\Python\Python38-32\python.exe" "D:\Users\User\Documents\programming\test.py"
我得到以下错误
回溯(最近一次呼叫最后一次):
文件“D:\Users\User\Documents\programming\test.py”,第1行,在
从SFTPDownload导入下载sftp
ModuleNotFoundError:没有名为“SFTPDownload”的模块
我需要向.bat添加什么才能在SFTPDownload.py中提取我的函数。这与test.py位于同一文件夹中
提前感谢。如果
SFTPDownload.py
是文件夹D:\Users\User\Documents\programming\
然后,在运行python脚本之前,必须转到该文件夹
cd D:\Users\User\Documents\programming\
D:\Users\User\AppData\Local\Programs\Python\Python38-32\python.exe test.py
系统可能会在不同的文件夹(用作当前工作目录)中运行批处理,然后python脚本会搜索此文件夹中的文件 在Python中,您可以检查
当前工作目录
print( os.getcwd() )
另见:
在导入
SFTPDownload
之前,最终在python脚本中,您可以将文件夹D:\Users\User\Documents\programming\
添加到python用于搜索导入文件的特殊列表sys.path
import sys
sys.path.insert(0, r'D:\Users\User\Documents\programming\')
import SFTPDownload
为了使它更通用(这样当您将test.py
和SFTPDownload.py
移动到不同的文件夹时,它就会工作),您可以尝试
import sys
import os
APP_FOLDER = os.path.abspath(os.path.dirname(__file__))
#APP_FOLDER = os.path.abspath(os.path.dirname(sys.argv[0]))
sys.path.insert(0, APP_FOLDER)
import SFTPDownload
如果
SFTPDownload.py
是文件夹D:\Users\User\Documents\programming\
中的文件,则在运行python脚本之前,必须转到该文件夹cd D:\Users\User\Documents\programming\
。