我有一个名为handshake.py的文件。其中有一个函数send_data(argument)。我想将该函数导入到另一个名为siptest.py的文件中。我遇到了两个问题。我正在使用windows 7,64位的microsoft visual studio。1)我无法导入函数。我尝试使用,
from handshake import*
handshkae.send_data(argument)
这给予我一个错误。
NameError: global name 'handshake' is not defined
我尝试过的另一个选项是使用
import handshake
handshake.send_data(argument)
这给了我一个属性错误。
AttributeError: 'module' object has no attribute 'send_data'
如果我以其他方式使用它,例如
from handshake import send_data
2)MS Visual Studio说。没有发现测试,请检查配置设置,但我仍然可以运行测试。它说,测试失败,因为导入错误。
ImportError: cannot import name send_data
这两个文件都在同一目录中。另外,该函数在www.example.com中的类“TCPhandshake”中定义handshake.py
9条答案
按热度按时间quhf5bfb1#
一个可能的原因是:模块www.example.com和www.example.com之间存在引用循环a.pyb.py:
在
a.py
中:import b
在
b.py
中:import a
解决的办法是打破循环,你需要明确哪个模块应该做什么,减少依赖。
cotxawn72#
确保两个文件位于同一目录中,然后尝试:
如果此方法不起作用,请尝试重命名handshake.py文件。
jdg4fx2g3#
handshake.py
和siptest.py
是否在同一目录中?如果没有,你可以试试这个:1)将
__init__.py
空文件添加到包含handshake.py
的目录。2)然后将该目录的路径添加到LD_LIBRARY_PATH和PYTHONPATHh4cxqtbf4#
确保函数在路径中
然后再
fzsnzjdm5#
我遇到了同样的问题,当我尝试使用python /home/name/workspace/ www.example.com从另一个目录运行程序时,也出现了同样的test.py
修理我累了。
这需要在开始时添加。这对我很有效。
slhcrj9b6#
我找到了一种在同一目录中导入文件的方法,例如,通过将关键字实现为和一个对象变量
但缺点是,当您想要访问导入的文件变量时,必须首先使用
fileObj.fileObjVariable.
k0pti3hp7#
尝试添加/更新环境变量PYTHONPATH,该变量应指向包含shakehake.py的文件夹
zynd9foi8#
这是非常简单的,但对我来说,它的工作重新启动内核。
apeeds0o9#
只需确保文件都位于项目的根目录下,这样就可以了: