要构建我的python项目,我想将代码分成不同的文件。
我发现了有关导入here的大量指南,示例1似乎很符合我的需求。
因此,我使用以下代码创建文件part.py
:
print("Hello world")
def myFunction():
print("This is my function!")
然后我在同一文件夹中创建了destination.py
:
import part
# from part import *
myFunction()
我期望import part
将运行part.py的整个代码,我的最终结果是
Hello world
This is my function!
但是,我得到了
ModuleNotFoundError Traceback (most recent call last)
in ()
----> 1 import part
2 # from part import *
3
4 myFunction()
ModuleNotFoundError: No module named 'part'
使用# from part import *
而不是import part
会导致相同的错误。
我在做什么错了?
编辑:
@hiro主角:
我将一个空的__init__.py
文件放入同一词典。重新启动内核后,运行destination.py中的所有代码时,我会(注意hello world
):
Hello world
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in ()
2 # from part import *
3
----> 4 myFunction()
NameError: name 'myFunction' is not defined
再次运行destination.py中的所有代码后,我只能得到
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in ()
2 # from part import *
3
----> 4 myFunction()
NameError: name 'myFunction' is not defined
如果我现在作为第三个动作,运行part.py
中的所有代码,我将得到
Hello world
然后我可以运行destination.py
中的所有代码来获取
This is my function!
如果我只能一次又一次地运行destination.py
而获得相同的结果,我会更喜欢。
@Nullman:
part.py
是文件,但import .part
抛出
File "", line 1
import .part
^
SyntaxError: invalid syntax
@Jeyekomon: 我正在Windows 10和Python 3.7.0上使用Visual Studio Code。
@ 9769953: 我直接在Visual Studio代码中运行代码
答案 0 :(得分:0)
模块导入问题现在似乎已解决。尽管__init__.py
文件在Python 3中通常是no longer needed,但是您正在使用的Visual Studio代码似乎仍然需要它。
其余的问题与使用模块有关。从official Python tutorial了解创建和使用模块的基础。模块part
应该包含可以在主文件destination
中调用的函数:
destination.py :
import part
part.say_hello()
part.myFunction()
part.say_hello()
part.py :
def say_hello():
print("Hello world")
def myFunction():
print("This is my function!")
答案 1 :(得分:-1)
将您的destination.py更改为:
from part import *
myFunction()
对我有用