Python无法从未定义的其他文件名导入

时间:2018-03-18 22:13:13

标签: python python-3.x

我正在尝试从另一个python文件导入自定义函数,但不断收到错误NameError: name 'testme' is not defined。我确认我正在根据this SO postthe 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'

1 个答案:

答案 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