我正在尝试从另一个python文件导入自定义函数,但不断收到错误NameError: name 'testme' is not defined
。我确认我正在根据this SO post和the function is top level正确导入文件。我还能尝试解决这个问题吗?
我的主要python文件是:
import sys
import dbconn
#from dbconn import testme #<----did not work
dev=True
if(dev):
categId='528'
pollIds=[529,530,531]
else:
categId=str(sys.argv[1])
pollIds=[529,530,531]
df=testme(categIds)#callServer(categId,pollIds)
df
if(not categId.isdigit):
print('categ id fail. expected digit got: '+categId)
.....
和dbconn.py:
import pymysql #pip3 install PyMySQL
import pandas as pd
from scipy.stats.stats import pearsonr
from scipy import stats
def testme(categIds):
try:
df=categIds
except Exception as e:
print("broke")
return categIds
不确定它是否有所不同但是我在Jupyter笔记本中运行主python文件,并且在同一目录中有dbconn.py的编译版本
回应我尝试过的建议:
df=dbconn.testme(categIds)
得到了错误:
module 'dbconn' has no attribute 'testme'
答案 0 :(得分:-1)
你必须遵循这些狐狸的确切导入
1)import <package>
2)import <module>
3)from <package> import <module or subpackage or object>
4)from <module> import <object>
在你的情况下,你已经尝试了
from dbconn import testme
您必须仅在packages
部分使用from
,在module
部分使用import
部分
喜欢&gt;&gt;
from testme import dbconn