【发布时间】:2017-11-04 17:37:03
【问题描述】:
我正在尝试从另一个名为“run_ES_15M_Trend_Identifier”的文件中调用一个函数:
import sys
import os
sys.path.append(os.path.abspath(r"C:\Users\cost9\OneDrive\Documents\PYTHON\Daily Tasks\Individual Trading\ES"))
from ES_15M_Trend_Identifier import run_ES_15M_Trend_Identifier
所以上面的函数来自 ES_15M_Trend_Identifier py 文件。我只是从它自己的目录中运行该文件,它运行完美 - 修改数据帧,发送到 csv。所以错误不是来自函数本身。相反,我得到了错误:
ImportError: cannot import name run_ES_15M_Trend_Identifier
我意识到其他 SO 帖子中可能有关于此过程的一些通知,但我不确定如何解决它。
编辑:我也试过了:
from ES_15M_Trend_Identifier import *
run_ES_15M_Trend_Identifier()
给出错误:
NameError: name 'run_ES_15M_Trend_Identifier' is not defined
编辑:这是函数,当我在自己的文件中运行它时它起作用:
def run_ES_15M_Trend_Identifier():
# Do stuff to pandas dataframe, including some for loops that fill out additional columns - this function works on the original file
path_to_csv = "C:\\Users\\cost9\\OneDrive\\Documents\\PYTHON\\Daily Tasks\\Individual Trading\\ES\CSV\\15M\\Trend_Identifier\\ES_15M_Summary.csv"
ES_15M_Summary_Reduced.to_csv(path_or_buf = path_to_csv)
【问题讨论】:
-
您不应该在原始字符串中使用双反斜杠。使用
r字符串或使用双反斜杠,但不能同时使用两者。 (即使 Windows 接受带有双反斜杠的文件路径;这会让任何阅读您的代码的人感到困惑。) -
嘿,我尝试了您对戴维的建议,不幸的是,它带来了上面编辑过的帖子中显示的错误。而且该函数完美地在原始文件中运行,所以我不确定发生了什么
-
请出示您的 ES_15M_Trend_Identifier.py 文件。它是否确实定义了名为 run_ES_15M_Trend_Identifier 的东西?
-
嘿丹尼尔,好的,我更新了
-
没有类,我从中导入的另一个文件中唯一的其他文本(除了上面的函数)是 import pandas as pd.等