python:如何导入模块
我是Python的新手。python:如何导入模块,python,import,Python,Import,我是Python的新手。 我需要的很简单:动态导入模块。 这是我的小测试: #module class Test: def func(self, id, name): print("Your ID: " + str(id) + ". Your name: " + name) return 我把这个类放在一个名为my_module.py的文件中,该文件的路径是:c:\doc\my_module.py 现在我创建一个新的python项目来导入上面的文件。 以
我需要的很简单:动态导入模块。
这是我的小测试:
#module
class Test:
def func(self, id, name):
print("Your ID: " + str(id) + ". Your name: " + name)
return
我把这个类放在一个名为my_module.py
的文件中,该文件的路径是:c:\doc\my_module.py
现在我创建一个新的python项目来导入上面的文件。
以下是我所做的:
import sys
module = sys.path.append(r'c:\doc\my_module.py')
myClass = module.__class__
print(myClass)
然而,我得到了这个结果:<class 'NoneType'>
为什么我不能进行测试?
是因为导入模块的方法错误,还是因为我需要进行一些配置才能导入模块?尝试以下方法:
import sys
sys.path.append(r'c:\doc\') # make sure python find your module
import my_module # import your module
t = my_module.Test() # Initialize the Test class
t.func(1, 'test') # call the method
试试这个:
import sys
sys.path.append(r'c:\doc\') # make sure python find your module
import my_module # import your module
t = my_module.Test() # Initialize the Test class
t.func(1, 'test') # call the method
你做错了。下面是使用sys.path.append导入模块的方法:
import sys # import sys
sys.path.append(r'c:\doc\') # add your module path to ``sys.path``
import my_module # now import your module using filename without .py extension
myClass = my_module.Test # this is how you use the ``Test`` class form your module
你做错了。下面是使用sys.path.append导入模块的方法:
import sys # import sys
sys.path.append(r'c:\doc\') # add your module path to ``sys.path``
import my_module # now import your module using filename without .py extension
myClass = my_module.Test # this is how you use the ``Test`` class form your module
导入模块的方法是通过import命令。可以使用sys作为目录指定路径。您还需要在模块内实例化该类(通过my_module.Test())。见下文:
import sys
sys.path.append(r'c:\doc\\')
import my_module
myObj = my_module.Test()
myClass = myObj.__class__
print(myClass)
导入模块的方法是通过import命令。可以使用sys作为目录指定路径。您还需要在模块内实例化该类(通过my_module.Test())。见下文:
import sys
sys.path.append(r'c:\doc\\')
import my_module
myObj = my_module.Test()
myClass = myObj.__class__
print(myClass)
sys.path
是目录列表,而不是文件列表。是否不想附加(r'c:\doc\)
?另外,将其附加到path不会加载模块,它只会添加一个额外的路径,在该路径中,import
应该查找模块。@Stej如果我这样做,如何定位我要导入的py文件?请参阅下面由user2750362和Nhor发布的答案——将.py文件的目录添加到sys.path应该足以定位文件sys.path
是目录列表,而不是文件。是否不想附加(r'c:\doc\)
?另外,将其附加到path不会加载模块,它只会添加一个额外的路径,在该路径中,import
应该查找模块。@Stej如果我这样做,如何定位我要导入的py文件?请参阅下面由user2750362和Nhor发布的答案--将.py文件的目录添加到sys.path应该足以定位文件我遇到此错误:AttributeError:module'my_module'没有属性'Test'您确定my_module
中存在Test
类吗这是因为我有另一个同名文件。无论如何,这个错误已经解决了。但是现在我有一个新的错误:IndentationError:unindent不匹配任何外部缩进级别Python是缩进敏感语言,所以您必须在文件中有适当的意图。有时在将空格与tab混合时也会发生这种情况。我得到了以下错误:AttributeError:module'my_module'没有属性'Test'。您确定Test
类存在于my_module
中吗?似乎是因为我有另一个具有相同文件名的文件。无论如何,这个错误已经解决了。但是现在我有一个新的错误:IndentationError:unindent不匹配任何外部缩进级别Python是缩进敏感语言,所以您必须在文件中有适当的意图。当您将空格与制表符混合使用时,有时也会发生这种情况